我有一个包含相同组件的两个 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做到这一点很容易,但是我想知道这是否是
  • a)不能使用批注或
  • b)如何完成。
  • 最佳答案

    也许这与您的想法略有不同,但是您可以使用基于@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...
        }
    }
    

    10-06 03:20