spring-懒加载
懒加载,顾名思义,就是从Spring容器中获取某个bean的时候该bean才会被加载。
体验懒加载
在User类中增加一个初始化方法
public void init(){
System.out.println("初始化");
}
在配置文件中,声明这个bean的初始化方法,当该userbean被加载的时候就会执行初始化方法,意味着该bean被加载了
<bean name="user" class="com.shen.User" init-method="init"/>
在测试类中创建容器,并执行
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("application2.xml");
会发现即使什么也没做的情况下还是会加载bean
此时向名为User的bean增加一个 lazy-init 如下,就会启动懒加载
<bean name="user" class="com.shen.User" init-method="init" lazy-init="true"/>
再次执行测试类
会发现现在什么也打印,意味着Spring中的bean没有被加载,这时候试着获取spring容器中的bean,再次执行,会发现bean被加载了。
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("application2.xml");
User user = (User)applicationContext.getBean("user");
如果一个bean开启了懒加载,那么只有从容器中获取的时候才会被加载,如果一个bean没有开启懒加载那么只要容器被初始化 bean就会被加载。