Spring提前載入與懶載入

2022-05-01 09:00:10 字數 546 閱讀 1488

首先,spring預設是提前載入,這意味著當專案啟動,spring初始化,spring會把所有的掃瞄包下的 ,所有帶spring 註解(@component、@repository、@service、@controller)的類都初始化。

注意:當初始化時,會呼叫預設構造方法,即乙個空的構造方法,但當在類中加入非空構造方法,spring會報錯誤,顯示找不到合適的構造方法。

當spring建立bean時,設定default-lazy-init="true",即懶載入時,spring不會主動初始化帶註解的類。

這裡有幾個特殊情況值得注意:

1、由於在controller中會注入service層的類,由於,controller層面上的spring-mvc不是懶載入,即當在controller中注入service時,就會初始化此service類。因此即呼叫到誰初始化誰。

提前載入的乙個好處是能即刻發現錯誤:

懶載入與提前載入對比:

懶載入:物件使用的時候才去建立。節省資源,但是不利於提前發現錯誤;

提前載入:容器啟動時立馬建立。消耗資源,但有利於提前發現錯誤。

Spring中懶載入與非懶載入

在xml配置檔案中,延遲初始化將通過元素中的lazy init屬性來進行控制。例如 在容器層次中通過在元素上使用 default lazy init 屬性來控制延遲初始化也是可能的。如下面的配置 在同乙個檔案中裡面設定的優先順序大於裡設定的優先順序 immediately lazy immediat...

spring的懶載入和非懶載入

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

spring的懶載入

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