gpt4 book ai didi

spring - 你如何在一个类中使用另一个类的bean?

转载 作者:行者123 更新时间:2023-12-02 17:41:43 25 4
gpt4 key购买 nike

使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com