我有一个java配置类,它使用@ImportResources注释导入xml文件。在java配置中,我想引用在xml配置中定义的bean,例如:像:
@Configuration
@ImportResource({
"classpath:WEB-INF/somebeans.xml"
}
)
public class MyConfig {
@Bean
public Bar bar() {
Bar bar = new Bar();
bar.setFoo(foo); // foo is defined in somebeans.xml
return bar;
}
}
我想将somebeans.xml中定义的bean foo设置为将在java config类中创建的bar bean。我如何获得foo bean?
答案 0 :(得分:12)
在配置类中添加一个字段,并使用@Autowired
对其进行注释,或者向该方法添加@Autowired
并传入该类型的参数。
public class MyConfig {
@Autowired
private Foo foo;
@Bean
public Bar bar() {
Bar bar = new Bar();
bar.setFoo(foo); // foo is defined in somebeans.xml
return bar;
}
}
或
public class MyConfig {
@Bean
@Autowired
public Bar bar(Foo foo) {
Bar bar = new Bar();
bar.setFoo(foo); // foo is defined in somebeans.xml
return bar;
}
}
the reference guide中解释了这一点。