@Configuration和Bean属性设置注释

时间:2012-06-30 20:39:51

标签: spring

我正在使用@Configuration创建bean并从其他bean属性设置其属性,例如可以使用xml配置

@Configuration
public class AppConfig {

    @Bean
    public MyBean myBean(@Value("#{someObject.value}") double value) {
        MyBean myBean = new MyBean();
        myBean.setValue(value);
        return myBean;
    }

    @Bean
    public SomeObject someObject() {
        SomeObject someObject = new SomeObject();
        someObject.setValue(1.0);
        return someObject;
    }
}

然而,必须使用setter方法是麻烦且不必要的[例如。 myBean.setValue(值)。相反,我想要这样的东西:

@Configuration
public class AppConfig {

    @Bean
    @MysticalPropertySetter(name="value", value="#{someObject.value}")
    public MyBean myBean() {
        return new MyBean();
    }

    @Bean
    @MysticalPropertySetter(name="value", value="1.0", type="java.lang.Double")
    public SomeObject someObject() {
        return new SomeObject();
    }
}

这样的事情可能吗?非常感谢!!!

2 个答案:

答案 0 :(得分:0)

我认为这种方法是不可能的,因为在使用@Bean注释的工厂方法中,您可以手动创建对象,但Spring只能将属性注入到自己实例化的bean中。

答案 1 :(得分:0)

构造函数注入怎么样?

@Bean
public MyBean myBean(@Value("#{someObject.value}") double value) {
    return new MyBean(value);
}