使用 xml,我能够定义一个通用的 xml 文件,我可以在其中放置用于其他不同条件文件的通用 bean。 我将配置移动到 psring java config,如何使用 java config 实现此目的?
假设我有一个共同的类:
@Configuration
public class Common {
@Bean
public A a(){
return new A();
}
}
我想用它作为
@Configuration
public class AConfig {
@Bean
public ABB abb(){
ABB abb = new ABB();
//TODO abb.set ????
return abb;
}
}
缺少 TODO 部分,我想使用公共(public)类中的 a()。 这可能吗?
最佳答案
最简单的方法就是像这样在私有(private)成员中“ Autowiring ”:
@Configuration
public class AConfig {
@Autowire
private A myA;
@Bean
public ABB abb(){
ABB abb = new ABB();
abb.setA(myA); // or MUCH better, make the A member of ABB private final and overload a construtor
return abb;
}
}
之所以可行,是因为 AConfig 也是一个 Bean。它必须由 Spring Bean Factory 构建。构建完成后,将进行构建后事件 - 其中之一是处理构建后注释,例如 Autowired。所以 'myA' 将在它被用于 @Bean 注释方法之前被设置。
关于spring - 你如何在一个类中使用另一个类的bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19791855/