Spring Bean默认的作用范围(scope)是singleton,而且默认设置了pre-instantiation="true"属性,所以Spring Bean默认将在初始化ApplicationContext的时候被立即创建,同时其所依赖的其他Spring Bean也将被实例化并注入。
在XML配置文件中,实现Spring Bean延迟初始化的2种方法:1.为一个Bean设置lazy-init="true"属性
<bean id="lazy" class="com.jdsu.MyBean" lazy-init="true"/>
2.为所有Bean设置default-lazy-init="true"属性
<beans default-lazy-init="true">...</beans>
上述XML设置能够实现Spring Bean的延迟初始化,前提条件Spring Bean是未被非延迟初始化的Spring Bean所依赖;否则仍然会在ApplicationContext初始化完成后立刻实例化。