SetFactoryBean 类为开发者提供了一种可在 Spring bean 配置文件创建一个具体的Set集合(HashSet 和 TreeSet)。
这里有一个 ListFactoryBean。例如,在运行时它将实例化 HashSet,并注入到一个 bean 属性中。
package com.yiibai.common;import java.util.Set;public class Customer
{private Set sets;//...
}
Spring的bean配置文件。
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="CustomerBean" class="com.yiibai.common.Customer"><property name="sets"><bean class="org.springframework.beans.factory.config.SetFactoryBean"><property name="targetSetClass"><value>java.util.HashSet</value></property><property name="sourceSet"><list><value>one</value><value>2</value><value>three</value></list></property></bean></property></bean></beans>
另外,还可以使用 util的模式 和<util:set> 来做到同样的事情。
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.5.xsd"><bean id="CustomerBean" class="com.yiibai.common.Customer"><property name="sets"><util:set set-class="java.util.HashSet"><value>one</value><value>2</value><value>three</value></util:set></property></bean></beans>
请记住必须包函 util 模式,否则会出现下面的错误:
Caused by: org.xml.sax.SAXParseException: The prefix "util" for element "util:set" is not bound.

执行结果

package com.yiibai.common;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App
{public static void main( String[] args ){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");Customer cust = (Customer)context.getBean("CustomerBean");System.out.println(cust);}
}

输出结果:

Customer [sets=[2, one, three]] Type=[class java.util.HashSet]
实例化 HashSet,在运行时注入到客户的set集合属性。
下载代码 – http://pan.baidu.com/s/1o7woXQU
http://www.yiibai.com/spring/spring-setfactorybean-example.html

Spring SetFactoryBean实例相关推荐

  1. Spring Aop实例之AspectJ注解配置

    上篇博文<Spring Aop实例之xml配置>中,讲解了xml配置方式,今天来说说AspectJ注解方式去配置spring aop. 依旧采用的jdk代理,接口和实现类代码请参考上篇博文 ...

  2. Spring AOP实例——异常处理和记录程序执行时间

    Spring AOP实例--异常处理和记录程序执行时间 参考文章: (1)Spring AOP实例--异常处理和记录程序执行时间 (2)https://www.cnblogs.com/victoria ...

  3. 基于OSGi的Virgo Server最简单Spring web实例

    一:开发工具下载与环境搭建 1.下载并安装JDK6u30版本,下载地址如下: http://www.oracle.com/technetwork/java/javasebusiness/downloa ...

  4. spring框架教程 Spring开发实例 spring mvc视频教程下载

    基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...

  5. spring事务实例

    spring事务实例 文章目录 spring事务实例 jar包引入 数据库表 Dao层 DaoImpl层 service层 serviceImpl层 applicationContext.xml 测试 ...

  6. spring Vaadin实例

    1.Spring Vaadin实例 Vaadin是一个开源的web框架,它可以帮助Java开发人员用最少的工作构建良好的用户体验.专注于创建用户愿意使用的应用程序,Vaadin使得用Java构建漂亮的 ...

  7. Echache整合Spring缓存实例讲解

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:本文主要介绍了EhCache,并通过整合Spring给出了一个使用实例. 一.EhCache 介绍 EhCache 是一 ...

  8. Spring注入---实例工厂

    在前面的两篇文章中我们介绍了Spring通过反射的机制注入,和静态的工厂两种方式的注入,在这一篇文章中我们用实例工厂的注入发放来实现创建对象 首先我们还是需要有一个实体类: package com.w ...

  9. Spring Mybatis实例SqlSessionDaoSupport混用xml配置和注解

    2019独角兽企业重金招聘Python工程师标准>>> 一.表(这里用mysql,数据库名为yiibai) CREATE TABLE `user` (`id` int(10) UNS ...

最新文章

  1. mongodb 对象唯一索引_什么是MongoDB?简介,架构,功能和示例
  2. python类继承实例
  3. 10个常用的Python图像处理工具,非常全了
  4. c# 中Stopwatch 类的运用
  5. 递归计算从1到100之间的所有数之和。
  6. html 缓存 js文件缓存吗,如何为css / js文件设置缓存
  7. 二元函数求最小值 c语言,遗传算法C语言源代码(一元函数和二元函数)
  8. 移动设备应用程序中支持多个屏幕大小和 DPI 值
  9. 区块链100篇之第三篇--数字签名
  10. 她是北大“一个人的毕业照”主人公,2010 级古生物专业独苗,十年后转行搞起了 NLP...
  11. 向中级程序员转变的10个建议
  12. 【转】请求处理机制其二:Django中间件的解析
  13. python统计时间的次数的代码_python脚本实现统计日志文件中的ip访问次数代码分享...
  14. JavaScript网页游戏开发实战视频教程
  15. 如何下载无水印的抖音视频?
  16. 【笔记】排列组合公式、二项式定理
  17. 极智AI | 目标检测 VOC 格式数据集制作
  18. 集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“
  19. 2022全国水下机器人大赛国际线上赛来啦!“水下感知赛、通信赛”等你来战!
  20. php 接入google 验证用户登录

热门文章

  1. OpenG 轮廓检测
  2. QT的QHttpPart类的使用
  3. C语言字符串基本操作
  4. 数控铣削图案及编程_数控铣削简单图案编程
  5. linux dd devzero,makefile中ifeq与ifneq dev/null和dev/zero简介 dd命令
  6. matlab基本矩阵运算,科学网—matlab中矩阵基本运算 - 成爱芳的博文
  7. influxdb介绍,安装,使用等(转载:http://www.jianshu.com/p/d2935e99006e)
  8. Linux增加虚拟内存的配置方案
  9. Kafka的producer案例,Kafka的consumer案例
  10. 2线程原语:pthread_create(),pthread_self(),pthread_exit(),pthread_join(),pthread_cancel(),pthread_detach(