在 applicationContext 上执行 SPeL
executing SPeL on the applicationContext
我正在尝试使用 SPeL 从应用程序上下文中提取一些数据
@Value
准确地说,我想要这个代码作为一个值
@Autowired
private ApplicationContext context;
Map<String, CrudRepository> repos =
context.getBeansOfType(CrudRepository.class);
@Value("#{...})
private Map<String, CrudRepository> repos;
是否有像 "systemProperties" 这样的魔法变量可以调用?必须有!
像这样:
@Value("#{beanFactory.getBeansOfType(T(org.springframework.data.repository.CrudRepository))}")
private Map<String, MessageChannel> repos;
这里的 SpEL 基于 BeanExpressionContext
,所以它的 getBeanFactory()
对我们有用!
从另一方面看,Map<String, CrudRepository>
不需要 @Value
。正常的 @Autowired
以同样的方式工作。
我正在尝试使用 SPeL 从应用程序上下文中提取一些数据
@Value
准确地说,我想要这个代码作为一个值
@Autowired
private ApplicationContext context;
Map<String, CrudRepository> repos =
context.getBeansOfType(CrudRepository.class);
@Value("#{...})
private Map<String, CrudRepository> repos;
是否有像 "systemProperties" 这样的魔法变量可以调用?必须有!
像这样:
@Value("#{beanFactory.getBeansOfType(T(org.springframework.data.repository.CrudRepository))}")
private Map<String, MessageChannel> repos;
这里的 SpEL 基于 BeanExpressionContext
,所以它的 getBeanFactory()
对我们有用!
从另一方面看,Map<String, CrudRepository>
不需要 @Value
。正常的 @Autowired
以同样的方式工作。