spring 簡單的屬性參考

2021-09-30 16:25:57 字數 1776 閱讀 6069

在定義檔案(xml配置檔案)中定義bean時,可以直接指定乙個字串值給屬性值,如果在bean定義檔案中已經有乙個定義的bean例項,則可以直接讓某個屬性參考至這個例項。

有以下幾種比較常用的方式:

1.使用直接指定參考至其他的bean例項

2.使用標籤並指定"class"屬性來指定依賴物件

3.隱式自動繫結,分別是bytype,byname將某個bean例項繫結至其他bean對應的屬性

4.在構造方法上也能進行自動繫結

5.也可以設定"autodetect",一切交給spring判定,自動完成。

以上幾種注入方式注意事項如下:

1. 方式:

,***填寫的字元需是你要依賴的bean檔案中的id名字,有些書上也叫bean別名。如

2. 方式:

前提條件必須是,這個bean的例項只被某個屬性參考一次,之後在定義檔案中不再被其它bean的屬性所參考,那麼可以直接在屬性定義時使用標籤,並僅需指定其"class"屬性即可,如:

......

spring的ioc容器會自動生成zzz例項,並透過setzzz()方法將zzz例項設定給需要實現的bean。

3.1 bytype方式:

在需要實現的bean中,在,無需再指定屬性參考而編寫乙個property,spring會根據需要實現的bean的setzzz()方法所接受的型別,來判斷在bean定義檔案中是否定義有類似的型別物件,並將之設定給需要實現的bean的setzzz()。使用自動繫結時,如果"bytype"無法完成繫結,則丟擲 org.springframework.beans.factory.unsatisfied-dependencyexception的異常。

3.2 byname方式:

使用byname方式,類似的在,但是需要注意的是spring要根據bean定義時的"id"屬性上指定的別名與setter名稱是否一致來進行自動繫結。如setdate()方法來完成依賴注入,必須修改一下需要注入的bean的id值為"date"名稱,即名字要相同。如果使用"byname"無法完成自動繫結,則對應的setter僅維持未繫結狀態。

4. constructor方法

在構造方法上也可以嘗試進行自動繫結。本人不是很推薦使用,因為這樣很容易產生混亂,一邊使用type 3 dependency injection一邊使用type 2 dependency injection,使**易讀性下降不利於**維護。有興趣的朋友可以翻閱相關資料嘗試。

5.autodetect方法

類似第3方法,,這時候spring會嘗試使用如"autowire"被設定為"constructor"來處理依賴關係的建立,如果沒有完成依賴關係建立,則再嘗試使用如"autowire"被設定為"bytype"的方式來建立依賴關係。這是比較傻瓜的一種自動檢測方式,雖然方便但是不推薦使用,因為也是容易降低**的可讀性。

相關spring自帶一種依賴關係檢測機制,由於很難從定義檔案中看清楚是否每個屬性都完成了設定,為了確定某些依賴關係確實建立,可以加入依賴檢測,在標籤使用時新增dependency-check="***",有四種檢測方式:"******"、"objects"、"all"、"none"。

"******":只檢查簡單的屬性是否完成依賴關係,如原生資料型別或字串物件

"objects":檢查物件型別的屬性是否完成依賴關係

"all":檢查全部的屬性是否完成依賴關係

"none":預設值,不檢查依賴關係

使用自動繫結時加入以來檢測,如有未完成的依賴關係,則執行程式丟擲 org.springframework.beans.factory.unsatisfieddependencyexception異常。

first child CSS屬性參考

css first child偽類選擇器用於匹配父元素中的第乙個子元素。first child偽類選擇器僅僅會匹配某個父元素中的第乙個子元素,例如 article p 第乙個段落.p 第二個段落.如果使用下面的css規則來新增樣式,那麼第乙個段落的文字大小將被修改 p first child 但是如...

last child CSS屬性參考

css last child偽類選擇器用於匹配父元素中的最後乙個子元素。last child偽類選擇器僅僅會匹配某個父元素中的最後乙個子元素,例如 article p 第乙個段落.p 第二個段落.如果使用下面的css規則來新增樣式,那麼第二個段落的文字大小將被修改 p last child 但是如果...

echars設定屬性參考

圖表標題 title x座標,單位px y top 垂直安放位置,預設為全圖頂端,可選為 top bottom center y座標,單位px textalign null 水平對齊方式,預設根據x設定自動調整 backgroundcolor rgba 0,0,0,0 bordercolor ccc...