【发布时间】:2020-08-04 23:58:58
【问题描述】:
我的 spring 配置中有以下设置
@Bean
public Myclass myClassOne() {
return new MyClass();
}
@Bean
public Myclass myClassTwo() {
return new MyClass();
}
@Bean
public YourClass processAndCreateYourClass(List<MyClass> allMyclasses) {
//Some business logic to process all myclasses beans so that I can create YourClass bean
return new YourClass();
}
这按预期工作,我得到了一个在processAndCreateYourClass 中注入的所有 myclasses 的列表(没有自动装配注释)但是如果我还有一个像下面这样的 bean 会怎样
@Bean
public List<Myclass> listOfMyClasses() {
//return list of my classes from here
}
在processAndCreateYourClass 方法中,我期待所有单独声明的myclass bean 和listOfMyClasses 返回的列表的联合。但情况似乎并非如此。期望 Spring 的行为是否公平,或者对此有更好的优雅解决方案?
【问题讨论】:
-
你需要
List<Myclass>类型的bean吗?但是你有它在processAndCreateYourClass。你能澄清一下吗?listOfMyClasses的实现将是什么? -
这是一个缺点,因为 Spring 容器处理事物的方式遗留下来,并且需要向后兼容。显式提供任何集合类型的 bean 往往无法按预期工作,最好避免。
标签: java spring spring-boot spring-mvc