官术网_书友最值得收藏!

3.3 注入集合對象

集合是Java項目開發中的重要組成部分,Spring中也支持常用集合類型的注入,包括數組(等價于List集合)、Set集合、Map集合和Properties集合。

3.3.1 注入數組對象

數組是一種固定的線性存儲集合,Spring中將數組與List集合進行了統一,即配置數組時使用<list>或<array>元素描述,最終的效果是完全相同的。

1.【mldnspring-base項目】修改Dept.java程序類,追加數組屬性。

本類中一共可以注入兩個數組:部門信息(infos)和部門員工(List)。

2.【mldnspring-base項目】修改spring-base.xml配置文件,追加數組配置。

本程序定義了兩個Emp對象,而后將這兩個對象直接注入到了Dept對象之中(List集合)。

提示:<list>與<array>元素可以互換。

通過以上配置可以發現,infos為數組,所以使用<array>元素描述;emps為List集合,所以使用<list>元素描述。Spring中,這兩者之間是可以互相替換的。

范例:修改配置。

本程序中,infos使用了<list>元素,emps使用了<array>元素,雖然標記元素不同,但Spring會自動幫助用戶進行處理。

3.【mldnspring-base項目】編寫TestDept程序類,測試數組對象注入。

本程序在測試類中啟動了Spring容器,并且注入了Dept對象,由于該對象之中infos屬于數組,所以可以直接使用Arrays.toString()進行輸出。對于List集合,則可以直接利用Lambda表達式結合forEach方法輸出。

提示:List實例化子類。

通過如上配置可以發現,在Bean配置中如果使用<list>或<array>元素進行數組或集合注入,會自動進行List集合實例化。在測試類中,可以通過如下代碼測試Spring使用的List子類:

程序執行后返回的是class java.util.ArrayList子類。之所以使用ArrayList,是因為進行配置文件定義時,配置項的元素個數是固定的,使用ArrayList作為默認List實例化子類更加合理。

3.3.2 注入Set集合

Set集合的最大特征是不允許存在重復內容。另外,Spring中為了保證數據的存儲順序,默認使用LinkedHashSet子類實例化Set集合。

1.【mldnspring-base項目】修改Dept程序類,追加Set集合屬性。

2.【mldnspring-base項目】編輯spring-base.xml配置文件,追加部門配置。

由于需要注入的是Set集合,所以使用了<set>元素。另外,為了體現Set集合不保存重復數據這一特點,這里特意設置了兩項相同的內容。

3.【mldnspring-base項目】編寫測試類。

執行程序可以發現,Set集合并沒有保存重復的內容;另外,Set集合中各內容的順序就是其配置文件定義的順序。

3.3.3 注入Map集合

Map集合注入的時候需要通過<map>元素進行配置,配置時需要設置元素的key與value。同時,為了保證集合保存順序,默認會使用LinkedHashMap子類。

1.【mldnspring-base項目】修改Dept.java類,追加Map集合屬性。

2.【mldnspring-base項目】編輯spring-base.xml配置文件,注入Map集合。

本程序為Map集合注入了兩個雇員的信息。由于Map中的key類型為String,所以設置的key為普通字符串數據,而Map中的value則引入了配置Bean類。

3.【mldnspring-base項目】編寫測試程序,實現Map數據輸出。

由于Map集合中的key不允許重復,所以在本程序中如果設置了重復的key,則會產生替換處理。通過配置結果也可以發現,Map集合中的數據保存順序為配置順序。

3.3.4 注入Properties集合

Properties是Hashtable的子類,在實際開發中用于配置信息的保存處理,其所保存的key與value全部為String型數據。

1.【mldnspring-base項目】修改Dept.java程序類,追加Properties屬性。

2.【mldnspring-base項目】修改spring-base.xml配置文件,配置Properties屬性內容。

3.【mldnspring-base項目】編寫測試程序,輸出全部的Properties信息。

由于Properties是Hashtable子類,所以可以直接使用forEach輸出。通過輸出結果可以發現,Properties中保存的順序是無序的。

提示:Properties與框架整合。

在Bean管理中,有關集合注入最為重要的就是Properties屬性,如果需要進行Spring框架整合處理,例如整合Hibernate、MyBatis等,可以通過Properties進行相關屬性的定義。

主站蜘蛛池模板: 昌图县| 龙川县| 綦江县| 德阳市| 永平县| 临泉县| 东平县| 漳浦县| 肇东市| 芷江| 吉木乃县| 临夏市| 葫芦岛市| 教育| 鄂州市| 澄江县| 锡林郭勒盟| 襄垣县| 栾城县| 手机| 册亨县| 金溪县| 本溪市| 镇康县| 昭通市| 平邑县| 新巴尔虎左旗| 大庆市| 读书| 东阳市| 合江县| 宽城| 行唐县| 大连市| 随州市| 大同市| 孙吴县| 闵行区| 上栗县| 大兴区| 攀枝花市|