这里只讨论Bean是怎样初始化的:
Ø 对于singleton bean,spring能够管理它的生命周期,知道其什么时候实例化,什么时候销毁。
Ø 如果bean是singleton而且没有设置延迟加载lazy-init="true",就在spring加载的时候实例化。如果设置了延迟加载lazy-init="true"就在第一次调用的时候实例化
Ø 对于non-singleton Bean,spring没有管理它的生命周期,而是交给客户端自己管理,每次客户端发送一个请求就会创建一个实例。
Ø 如果bean是non-singleton,则不会在spring加载的时候实例化,而是在每次用到的时候实例化。
Fengshan.java:
Test.java:
bean.xml:spring配置文件
可以分别使用配置文件中1,2,3看看是否创建了bean来验证以上的结论。
转自《Spring中Bean的生命周期》,感谢原作者。