【发布时间】:2019-05-03 21:11:19
【问题描述】:
我有一个看起来像这样的类 (@Component bean):
@Component
public class EntityCleaner {
@Autowired
private List<Cleaner> cleaners;
public void clean(Entity entity) {
for (Cleaner cleaner: cleaners) {
cleaner.clean(entity);
}
}
}
Cleaner 是一个界面,我有一些清洁器,我希望它们都运行(不要介意顺序)。今天我做了这样的事情:
@Configuration
public class MyConfiguration {
@Bean
public List<Cleaner> businessEntityCleaner() {
List<Cleaner> cleaners = new ArrayList<>();
cleaners.add(new Cleaner1());
cleaners.add(new Cleaner2());
cleaners.add(new Cleaner3());
// ... More cleaners here
return cleaners;
}
}
有没有办法在配置中不定义特殊方法来构造这个列表?只是那个spring自动神奇地找到所有那些实现Cleaner接口的类,创建列表并将其注入EntityCleaner?
【问题讨论】:
标签: java spring dependency-injection