Lazy-initialized beans延迟初始化
ApplicationContext默认会实例化singleton的bean,如果想延迟初始化它则在bean标签中用lazy-init="true"同时也可以在beans标签中指定default-lazy-init="true"来将所有的延迟初始化:
Spring3官方配置:
- <bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/><!--延迟... -->
- <bean name="not.lazy" class="com.foo.AnotherBean"/><!--不延迟... -->
- <beans default-lazy-init="true">
- <!--延迟所有... -->
- </beans>
但是,如果将一个已经设置 lazy-init="true"的bean注入到另一个没有设置延迟的bean中的,那么前者的 lazy-init="true"是无效的,它也将初始化。
如果是用注解,很简单:
- @Component
- @Lazy(true)//
- public class UserAnnotation {
- ...
- }
本文介绍Spring框架中如何使用lazy-init属性实现Bean的延迟加载。通过XML配置和注解方式,可以控制Singleton Bean是否延迟初始化,从而优化应用启动时间和内存占用。

1032

被折叠的 条评论
为什么被折叠?



