Spring默認會在容器初始化的過程中,解析xml,並將單例的bean創建並保存到map中,這樣的機制在bean比較少時問題不大,但一旦bean非常多時,spring需要在啟動的過程中花費大量的時間來創建bean 花費大量的空間存儲bean,但這些bean可能很久都用不上,這種在啟動時在時間和空間上的浪費顯得非常的不值得。
所以Spring提供了懶加載機制。所謂的懶加載機制就是可以規定指定的bean不在啟動時立即創建,而是在后續第一次用到時才創建,從而減輕在啟動過程中對時間和內存的消耗。
懶加載機制只對單例bean有作用,對於多例bean設置懶加載沒有意義。
懶加載的配置方式
1.為指定bean配置懶加載
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" > <bean id="user" class="com.spring.demo.User" lazy-init="true"></bean> </beans>
2.為全局配置懶加載
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" default-lazy-init="true" > <bean id="user" class="com.spring.demo.User"></bean> </beans>
注意:如果同時設定全局和指定bean的懶加載機制,且配置不相同,則對於該bean局部配置覆蓋全局配置。