1.什么是懒加载
在Web应用程序中,系统的瓶颈常在于系统的响应速度。如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣。因此,提高系统响应速度,是非常重要的。
Web应用程序做的最多就是和后台数据库交互,而查询数据库是种非常耗时的过程。当数据库里记录过多时,查询优化更显得尤为重要。为了解决这种问题,有人提出了缓存的概念。缓存就是将用户频繁使用的数据放在内存中以便快速访问。在用户执行一次查询操作后,查询的记录会放在缓存中。当用户再次查询时,系统会首先从缓存中读取,如果缓存中没有,再查询数据库。缓存技术在一定程度上提升了系统性能,但是当数据量过大时,缓存就不太合适了。因为内存容量有限,把过多的数据放在内存中,会影响电脑性能。而另一种技术,懒加载可以解决这种问题。
2.Spring容器中关于懒加载:
Spring IOC容器默认在启动时初始化我们配置在配置文件中所有的bean,但如果配置文件中的bean过多的话,这种方式会使得容器启动方式缓慢,而且有些bean在容器中不会被使用到,所以产生懒加载(lazy-init)的概念,让某些bean延迟初始化的时机,在调用时被初始化。
3.懒加载属性设置:
我们在配置文件中在bean上面添加lazy-init属性,属性的值可以是true,false,default。默认是false,想使用懒加载就需要将值设定为true。
4.全局的懒加载设置:
设置bean全局懒加载默认值
在配置文件抬头上方的设定全局配置。容器在启动时对所有的bean都不会初始化,只有在用到某一个bean时才会对当前的bean进行初始化,节省空间。
<beans default-lazy-init="true"></beans>
在配置文件抬头上方的设定全局配置。容器在启动时对所有的bean都不会初始化,只有在用到某一个bean时才会对当前的bean进行初始化,节省空间。
5.懒加载事例:
eg:
<bean id="lazyLoad" class="com.lanou3g.demo" lazy-init="true" >
(bean被设定为懒加载属性,在容器启动时不会被初始化,只有在调用时(getBean)才会被初始化)
<bean id="notLazyLoad" class="com.lanou3g.demo" >
(bean没有被设定为懒加载属性,在容器启动时就会被初始化)