我正在使用@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();
}
}
这样的事情可能吗?非常感谢!!!
答案 0 :(得分:0)
我认为这种方法是不可能的,因为在使用@Bean注释的工厂方法中,您可以手动创建对象,但Spring只能将属性注入到自己实例化的bean中。
答案 1 :(得分:0)
构造函数注入怎么样?
@Bean
public MyBean myBean(@Value("#{someObject.value}") double value) {
return new MyBean(value);
}