Spring在main中使用任何bean之前加载/运行Configuration类中的每个bean?

时间:2017-12-03 16:40:13

标签: java spring

在main中使用任何bean之前,Spring是否加载/运行Configuration类中的每个bean? 我们得到了一些抽象的东西:

  @Configuration
  public class Config {
     @Bean
     public String aha() {
     System.out.println("ss1s");
     return "sss";
    }
}

在主要方面,我只得到了这个:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
    }

我没有在main中使用任何bean但是在运行后,在控制台中我有“ss1s”。那种行为是对的吗?

2 个答案:

答案 0 :(得分:2)

确实如此。默认情况下,Spring急切地初始化所有bean。

要懒惰地初始化bean,您可以使用@Lazy注释,如下所示

    @Bean
    @Lazy
    public String aha() {
       ...
    }

答案 1 :(得分:0)

默认情况下,豆不是懒惰的。但是,就注释而言,它似乎是目前的,注释不支持它。 http://forum.springsource.org/showthread.php?t=62931

Spring的下一个版本虽然似乎有商店http://jira.springframework.org/browse/SJC-263