繁体   English   中英

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

[英]Spring load/runs every beans from Configuration class before any bean is used in main?

确实,在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”。 那是正确的行为吗?

是真的。 默认情况下,Spring急切地初始化所有bean。

要延迟初始化bean,可以使用@Lazy批注,如下所示

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

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

虽然Spring的下一版本似乎已经在商店中提供了一些东西http://jira.springframework.org/browse/SJC-263

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM