Spring @Configuration如何缓存对bean的引用

时间:2013-12-16 16:09:18

标签: java spring

在使用基于Java的配置时,Spring如何阻止对bar()的第二次调用?

我想知道编译时注释处理还是通过代理方法?

@Configuration
public class AppConfig {

  @Bean
  public Foo foo() {
      return new Foo(bar());
  }

  @Bean
  public Foo foo2() {
      return new Foo(bar());
  }

  @Bean
  public Bar bar() {
      return new Bar();
  }
}  

1 个答案:

答案 0 :(得分:0)

Spring不会“阻止”调用bar()。 相反,在启动时,spring会生成@Bean标记方法的列表,然后调用每个方法一次。 如果您愿意,可以拨打bar()一百次。 然而春天;只会打电话一次。