spring中Bean的懒加载

Posted heliusking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring中Bean的懒加载相关的知识,希望对你有一定的参考价值。

ApplicationContext容器中,当容器一启动时,所有的bean(单例的)都会被创建和注入依赖,这也被视为IOC容器启动过程中的一个步骤。

那如何让一个bean在需要的时候再被创建,而不是容器一加载的时候呢?

在配置文件的bean标签中,将lazy-init属性设置为true

<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>
<bean name="not.lazy" class="com.foo.AnotherBean"/>

这样,当applicationContext容器启动时,该Bean不会初始化,而是当需要使用这个类的时候才会创建实例

还有另外一种情况,就是这个被懒加载的Bean,它被不是一个懒加载的bean所依赖,那么在容器启动时,即使它是懒加载 的,也会被实例化。

全局懒加载

<beans default-lazy-init="true">
    <!-- no beans will be pre-instantiated... -->
</beans>

beans标签中配置default-lazy-init="true"属性即可。

以上是关于spring中Bean的懒加载的主要内容,如果未能解决你的问题,请参考以下文章

Spring容器的懒加载

quarkus依赖注入之十:学习和改变bean懒加载规则

quarkus依赖注入之十:学习和改变bean懒加载规则

Hibernate的懒加载session丢失解决方法

关于swift中的懒加载

图片网站中的懒加载和预加载(转)