XML 注入 Bean 的屬性
注入方式:
- property注入==set方法注入,指定屬性名
- constructor-arg注入==構(gòu)造器注入,默認(rèn)按順序執(zhí)行,也可指定順序(index,從0開始)、屬性名(name)、類型(type)
- p命名空間注入==set方法注入,指定屬性名
注入時(shí)value和ref的區(qū)別
- 基本類型:使用value指定
- String:使用value指定
- 非String的引用類型:使用ref指定
注入類型
- list:property-list-value/ref/bean
- array:property-array-value/ref/bean
- set:property-set-value/ref/bean
- map:property-map-entry-(key-value)+value/ref/bean
- props:property-props-prop(key屬性)
value屬性和value標(biāo)簽的區(qū)別
| value屬性 | value標(biāo)簽 | |
|---|---|---|
| 參數(shù)值位置 | 寫在 value 的屬性值中,必須加雙引號(hào) | 寫在首尾標(biāo)簽(<value></value>)中間,不加雙引號(hào),否則雙引號(hào)也將作為屬性值的一部分 |
| type 屬性 | 無(wú) | 有,可通過 type 屬性指定數(shù)據(jù)類型(全稱) |
| 參數(shù)值包含特殊字符 | 一種處理方法:使用 xml 預(yù)定義的實(shí)體引用 | 兩種處理方法:一、使用 <![CDATA[ ]]>標(biāo)記;二、使用 xml 預(yù)定義的實(shí)體引用 |
| null值 | value標(biāo)簽換成null標(biāo)簽 | |
| 空字符串 | value屬性(雙引號(hào))中為空 | value標(biāo)簽中為空 |
常用 xml 預(yù)定義的實(shí)體引用如下:
| 實(shí)體引用 | 表示符號(hào) |
|---|---|
| < | < |
| > | > |
| & | & |
自動(dòng)裝配
自動(dòng)裝配適用于 ref 指定的屬性
啟用某個(gè) bean 標(biāo)簽的自動(dòng)裝配,需要顯式指定 autowire 屬性的值為 byName|byType|constructor
- byName:尋找IoC容器中是否存在 id 為該 bean 的屬性的名稱,存在則自動(dòng)裝配
- byType:尋找IoC容器中是否存在 class 為該 bean 的屬性的類型,存在則自動(dòng)裝配,只適用于包含一個(gè)該 class 的 bean
- constructor:尋找IoC容器中是否存在 class 為該 bean 的構(gòu)造方法參數(shù)的類型,存在則自動(dòng)裝配,只適用于包含一個(gè)該 class 的 bean(本質(zhì)上還是 byType)
啟用 IoC 容器中所有 bean 標(biāo)簽的自動(dòng)裝配,可在頭文件 beans 標(biāo)簽中顯式指定 default-autowire 屬性