春季:配置

时间:2019-05-08 13:30:05

标签: spring spring-java-config

在Spring Java配置中,假设我想在另一个 let configuration = ARWorldTrackingConfiguration() configuration.planeDetection = .vertical sceneView.session.run(configuration) 定义中重复使用@Bean。我可以在一个文件中执行此操作:

@Bean

或者我可以在一个文件中配置A并将其自动连接到另一个文件中,例如(为简洁起见,请现场注入):

@Bean
public A buildA() {
    return new A();
}

@Bean
public B buildB() {
    return new B(buildA());
}

我想知道,这两种可能性是否完全相同?在我看来,第一个版本可能会使A两次虚假,而第二个版本却没有。

我问这个问题,因为在我的特殊用例中,A正在建立与消息传递代理的连接,并且我有几个B在消耗流(我在A中使用spring集成中的@Autowired private A a; @Bean public B buildB() { return new B(a); } ),并且我不想连接两次或多次到代理。

1 个答案:

答案 0 :(得分:5)

是的,它们是完全一样的。多次调用带注释的@Bean方法不会创建同一bean的多个实例。

有关为何不发生这种情况的说明,请参见this answer