史上最全面的spring講解(一)

2021-09-11 15:36:11 字數 1937 閱讀 4371

如果僅使用了支援servlet2.4以前規範的web容器,則該容器不支援listener規範,故無法使用這種配置,可以使用filter配置方式,我們可以在web應用的web.xml增加如下filter配置:

requestcontextfilter

org.springframework.web.filter.requestcontextfilter

< lookup-mehtod name="createaxe" bean="steelaxe">

④注入巢狀bean:

< property name="">

//屬性為巢狀bean 不能由spring容器直接訪問,因此沒有id屬性

⑤注入集合值:

//每乙個entry配置乙個key-value對

......

.....

⑥注入方法返回值:

public class valuegenrator

public static int getstaticvalue()

}//配置非靜態方法

//配置靜態方法

8,強制初始化bean:

spring有乙個預設的規則,總是先初始化主調bean,然後在初始化依賴bean。

為了指定bean在目標bean之前初始化,可以使用depends-on屬性

9,自動裝配:

spring能自動裝配bean與bean之間的依賴關係,即使無需使用ref顯式指定依賴bean。

spring的自動裝配使用autowire屬性指定,每乙個元素都可以指定autowire屬性,也就是說在spring容器中完全可以讓某些bean自動裝配,而某些bean不沒使用自動裝配。

自動裝配可以減少配置檔案的工作量,但是降低了依賴關係的透明性和依賴性。

使用autowire屬性自動裝配,autowire屬性可以接受如下幾個值 :

no:不使用自動裝配。這是預設配置。

byname:根據屬性自動裝配,beanfactory會查詢容器中所有的bean,找出id屬性與屬性名同名的bean來完成注入。如果沒有找到匹配的bean,spring則不會進行任何注入。

bytype:根據屬性型別自動裝配,beanfactroy會查詢容器中所有的 bean,如果乙個正好與依賴屬性型別相同的bean,就會自動注入這個屬性。

如果有多個這樣的bean則會丟擲異常。如果沒有這樣 的bean則什麼也不會發生,屬性不會被設定。

constructor:與bytype類似,區別是用於構造注入的引數,如果beanfactory中不是恰好有乙個bean與構造器引數型別相同。則會丟擲異常。

autodetect:beanfactory會根據bean內部的結構,決定使用constructor或bytype,如果找到乙個預設的構造器,就會應用bytype。

注意:對於大型的應用而言,不鼓勵使用自動裝配,

10,依賴檢查:

spring提供一種依賴檢查的功能,可以防止出現配置手誤,或者其他情況的錯誤。

使用依賴檢查可以讓系統判斷配置檔案的依賴關係注入是否完全有效。

使用依賴檢查,可以保證bean的屬性得到了正確的設定,有時候,某個bean的特定屬性並不需要設定值,或者某些屬性已有預設值,此時採用依賴檢查就會出現錯誤,該bean就不應該採用依賴檢查,幸好spring可以為不同的bean單獨指定依賴檢查的行為,spring提供dependency-chech屬性來配置依賴檢查,當然也可以指定不同的檢查依賴策略。

該屬性有如下值:

none:不進行依賴檢查,沒有指定值的bean屬性僅僅是沒有設定值,這是預設值。

******:對基本型別和集合(除了合作者bean)進行依賴檢查。

objects:僅對合作者bean進行依賴檢查。

all:對合作者bean、基本資料型別全部進行依賴檢查。

public class chinese implements person

public int getage()

}原文: 

史上最全講解 IOC

spring ioc自動注入 spring ioc掃瞄器 bean的作用域 bean的生命週期 通俗易懂的理解ioc 由於引進了中間位置的 第三方 也就是ioc容器,使得a b c d這4個物件沒有了耦合關係,齒輪之間的傳動全部依靠 第三方 了,全部物件的控制權全部上繳給 第三方 ioc容器,所以,...

webview最全面,最詳細講解

首先先看一下webview的詳解 1.簡介 webview是乙個基於webkit引擎 展現web頁面的控制項。android的webview在低版本和高版本採用了不同的webkit版本核心,4.4後直接使用了chrome。2.作用webview控制項功能強大,除了具有一般view的屬性和設定外,還可...

最全面的快取架構設計

網際網路的一些高併發,高效能的專案和系統中,快取技術是起著功不可沒的作用。快取不僅僅是key value的簡單訪問,它在具體的業務場景中,還是很複雜的,需要很強的架構設計能力。我曾經就遇到過因為快取架構設計不到位,導致了系統崩潰的案例。1 是做實時性比較高的那塊資料,比如說庫存,銷量之類的這種資料,...