我有一个包含相同组件的两个 Autowiring 实例的Bean:
@Component
public SomeBean {
@Autowired
private SomeOtherBean someOtherBean1;
@Autowired
private SomeOtherBean someOtherBean2;
...
}
SomeOtherBean具有原型(prototype)范围:
@Component
@Scope("prototype")
public SomeOtherBean {
@Value("...")
private String configurable;
}
每个 Autowiring 的SomeOtherBean的可配置值都需要不同,并且将通过属性占位符提供:
configurable.1=foo
configurable.2=bar
理想情况下,我想使用注释来指定可配置属性的值。
通过XML做到这一点很容易,但是我想知道这是否是
最佳答案
也许这与您的想法略有不同,但是您可以使用基于@Configuration
的方法轻松地做到这一点,例如:
@Configuration
public class Config {
@Bean
@Scope("prototype")
public SomeOtherBean someOtherBean1(@Value("${configurable.1}") String value) {
SomeOtherBean bean = new SomeOtherBean();
bean.setConfigurable(value);
return bean;
}
@Bean
@Scope("prototype")
public SomeOtherBean someOtherBean2(@Value("${configurable.2}") String value) {
// etc...
}
}