Spring:配置
Spring: Configuration
在 Spring Java 配置中,假设我想在另一个 @Bean
定义中重新使用 @Bean
。我可以在一个文件中执行此操作:
@Bean
public A buildA() {
return new A();
}
@Bean
public B buildB() {
return new B(buildA());
}
或者我可以在一个文件中配置 A 并在另一个文件中自动装配它(为简洁起见,字段注入):
@Autowired
private A a;
@Bean
public B buildB() {
return new B(a);
}
请问,这两种可能性是不是完全一样?在我看来,第一个版本可能会实例化 A 两次,而第二个版本则不会。
我在问这个,因为在我的特殊用例中,A 正在建立与消息传递代理的连接,并且我有几个使用流的 B(我使用来自 spring 集成的 .toReactivePublisher()
在 A) 中,我不想连接到代理两次或更多次。
是的,它们完全一样。多次调用 @Bean
注释方法不会创建同一 bean 的多个实例。
有关为什么没有发生的解释,请参阅 。
在 Spring Java 配置中,假设我想在另一个 @Bean
定义中重新使用 @Bean
。我可以在一个文件中执行此操作:
@Bean
public A buildA() {
return new A();
}
@Bean
public B buildB() {
return new B(buildA());
}
或者我可以在一个文件中配置 A 并在另一个文件中自动装配它(为简洁起见,字段注入):
@Autowired
private A a;
@Bean
public B buildB() {
return new B(a);
}
请问,这两种可能性是不是完全一样?在我看来,第一个版本可能会实例化 A 两次,而第二个版本则不会。
我在问这个,因为在我的特殊用例中,A 正在建立与消息传递代理的连接,并且我有几个使用流的 B(我使用来自 spring 集成的 .toReactivePublisher()
在 A) 中,我不想连接到代理两次或更多次。
是的,它们完全一样。多次调用 @Bean
注释方法不会创建同一 bean 的多个实例。
有关为什么没有发生的解释,请参阅