天天看点

《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。