懒加载也称延迟加载或延迟初始化。
Spring默认在启动时将所有单例bean提前进行实例化,也就是说默认不是懒加载的。Ioc容器会把懒加载的bean在第一次需要的时候才实例化而不是在容器启动时就实例化。
在XML配置文件中,懒加载通过<bean/>
元素的lazy-init属性进行控制:
<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>
<bean name="not.lazy" class="com.foo.AnotherBean"/>
也可以控制整个容器懒加载:
<beans default-lazy-init="true">
<!-- 所有bean都会懒加载 -->
</beans>