天天看點

《Spring攻略(第2版)》——1.8 使用工廠Bean和Utility Schema定義集合

本節書摘來自異步社群《spring攻略(第2版)》一書中的第1章,第1.8節,作者: 【美】gary mak , josh long , daniel rubio著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.8.1 問題

使用基本集合标記定義集合時,你不能指定集合的實體類,例如linkedlist、treeset或treemap,而且,你不能通過将集合定義為可供其他bean引用的單獨bean在不同的bean中共享集合。

1.8.2 解決方案

spring提供兩個選項來克服基本集合标記的不足。選項之一是使用對應的集合工廠bean,如listfactorybean、setfactorybean和mapfactorybean。工廠bean是用于建立其他bean的特殊spring bean。第二個選項是在spring 2.x中引入的util schema中使用集合标記,如、和。

1.8.3 工作原理

為集合指定實體類

你可以使用集合工廠bean定義一個集合,并且指定其目标類。例如,你可以為setfactory bean指定targetsetclass屬性。然後spring将為這個集合執行個體化指定的類。

你也可以使用util schema中的集合标記定義集合并且設定其目标類(例如,利用的set-class屬性)。但是你必須記住在根元素中添加util schema定義。

定義獨立集合

集合工廠bean的另一個好處是可以将集合定義為獨立bean,供其他bean引用。例如,你可以使用setfactorybean定義一個獨立的set。

你也可以使用util schema中的标記定義一個獨立set。