0

我正在使用 @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();
    }
}

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

4

2 回答 2

0

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

于 2012-07-01T05:56:35.520 回答
0

构造函数注入怎么样?

@Bean
public MyBean myBean(@Value("#{someObject.value}") double value) {
    return new MyBean(value);
}
于 2012-07-01T19:18:02.203 回答