我正在尝试使用SPeL使用
从应用程序上下文中提取一些数据@Value
准确地说,我想将此代码作为值
@Autowired
private ApplicationContext context;
Map<String, CrudRepository> repos =
context.getBeansOfType(CrudRepository.class);
@Value("#{...})
private Map<String, CrudRepository> repos;
我可以调用一个像“systemProperties”这样的神奇变量吗?必须有!
答案 0 :(得分:1)
这样的事情:
@Value("#{beanFactory.getBeansOfType(T(org.springframework.data.repository.CrudRepository))}")
private Map<String, MessageChannel> repos;
此处的SpEL基于BeanExpressionContext
,因此其getBeanFactory()
为我们提供了诀窍!
另一方面,@Value
不需要Map<String, CrudRepository>
。正常@Autowired
的工作方式相同。