问题:
我有一个bean(ConversionService
)需要创建Converter
的集合。因此,在我的@Configuration
课程中,我的@Bean
是Collection<Converter>
,具有特定的@Qualifier
。
对于我的ConversionService
@Bean
,我使用我的Converter
收到@Qualifier
集合作为参数:
@Bean
public ConversionService createConversionService(@Qualifier("converters") converters) {
// here I perform the ConversionService creation
}
这是有效的,也正是我想要的。但我有几个@Configuration
类,每个类都可以添加一些Converter
集合。我最初可能有一种方法可以实现从@Configuration
类读取bean定义后调用的方法。像这样:
@Configuration
public class MyConfiguration {
@Autowired
@Qualifier("converters")
private Collection<Converter> converters;
public void init() {
converters.add(xy);
}
}
甚至
@Configuration
public class MyConfiguration {
public void init(@Qualifier("converters") Collection<Converter> converters) {
converters.add(xy);
}
}
答案 0 :(得分:1)
您应该可以使用@PostConstruct
注释在converters
带注释的班级中为@Configuration
添加内容。
@Configuration
public class MyConfiguration {
@Autowired
@Qualifier("converters")
private Collection<Converter> converters;
@PostConstruct
public void init() {
converters.add(xy);
}
}