在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”。那种行为是对的吗?
答案 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