Spring的懶載入機制

2021-10-04 02:48:56 字數 881 閱讀 9584

今天覆習了spring的知識點,總結一下經常大家經常問到的spring的懶載入機制

spring缺省會在容器初始化的過程中,解析xml,並將單例的bean建立並儲存到map中,這樣的機制在bean比較少時問題不大,但一旦bean非常多時,spring需要在啟動的過程中花費大量的時間來建立bean 花費大量的空間儲存bean,但這些bean可能很久都用不上,這種在啟動時在時間和空間上的浪費顯得非常的不值得。

所以spring提供了懶載入機制。所謂的懶載入機制就是可以規定指定的bean不在啟動時立即建立,而是在後續第一次用到時才建立,從而減輕在啟動過程中對時間和記憶體的消耗。

懶載入機制只對單例bean有作用,對於多例bean設定懶載入沒有意義。

懶載入只是延後了物件建立的時機,物件仍然是單例的。

懶載入的配置方式:

為指定bean配置懶載入

<?xml version="1.0" encoding="utf-8"?>

為全域性配置懶載入

<?xml version="1.0" encoding="utf-8"?>

**如果同時設定全域性和指定bean的懶載入機制,且配置不相同,則對於該bean區域性配置覆蓋全域性配置。

待辦事項 實驗:通過斷點除錯,驗證懶載入機制的執行過程

public class cart <?xml version="1.0" encoding="utf-8"?>

@test

public void test10(){

cart cart1 = (cart) context.getbean("cart");

cart cart2 = (cart) context.getbean("cart");

system.out.println(cart1 == cart2);

Spring懶載入機制

spring缺省會在容器初始化的過程中,解析xml,並將單例的bean建立並儲存到map中,這樣的機制在bean比較少時問題不大,但一旦bean非常多時,spring需要在啟動的過程中花費大量的時間來建立bean 花費大量的空間儲存bean,但這些bean可能很久都用不上,這種在啟動時在時間和空間上...

spring的懶載入

在spring的ioc容器中,可以通過設定來設定是否為懶載入模式,懶載入的意思就是說是否在spring容器載入的時候將bean載入到容器中。在沒有設定的情況下,預設是false的,就是說不使用懶載入模式。當設定為false 或者沒有設定的時候 tomcat啟動的時候出現的是 log4j warn p...

spring的懶載入和非懶載入

因為這樣在配置中的任何錯誤就會即刻被發現 否則的話可能要花幾個小時甚至幾天 有時候這種預設處理可能並不是 在xml配置檔案中,延遲初始化將通過元素中的 lazy init 屬性來進行控制。例如 html view plain copy beanid lazy class com.foo.expens...