Spring中给Bean注入集合
2024-10-14 02:29:33
Spring中如果一个Bean里含有集合元素,需要给Bean里的集合元素注入元素时,可以采用如下方法,一个是构造器注入,一个是setter注入
JavaBean源代码:
import java.util.List;
import java.util.Map;
import java.util.Set;
//一个普通的JavaBean
public class Person {
//人的名字
private String name;
//一个人可以唱N首歌,歌名不能重复
private Set<String> set;
//一个人几岁对应学生生涯的哪一个时期
private Map<Integer,String> map;
//一个人早中晚吃的饭(值可以重复)
private List<String> meal;
//getter方法
public String getName() {
return name;
}
//setter方法
public void setName(String name) {
this.name = name;
}
//getter方法
public Set<String> getSet() {
return set;
}
//setter方法
public void setSet(Set<String> set) {
this.set = set;
}
//getter方法
public Map<Integer, String> getMap() {
return map;
}
//setter方法
public void setMap(Map<Integer, String> map) {
this.map = map;
}
//getter方法
public List<String> getMeal() {
return meal;
}
//setter方法
public void setMeal(List<String> meal) {
this.meal = meal;
}
//一个构造函数
public Person(String S_name, Set<String> set, Map<Integer, String> map,
List<String> meal) {
super();
this.name = S_name;
this.set = set;
this.map = map;
this.meal = meal;
}
//默认的构造函数
public Person() {
super();
}
}
这个JavaBean里面有三个集合List、Set、Map,以下是Spring的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="person" class="com.pp.Person">
<!-- 给构造函数的第一个参数传值 -->
<constructor-arg value="pptest"></constructor-arg>
<!-- 给构造函数的第二个参数传值 -->
<constructor-arg>
<set>
<value>我是中国人</value>
<value>哈哈</value>
<!-- 由于集合的特性,这个是加不进去的 -->
<value>哈哈</value>
</set>
</constructor-arg>
<!-- 给构造函数的第三个参数传值 -->
<constructor-arg>
<map>
<entry key="5" value="小学"></entry>
<entry key="11" value="初中"></entry>
<entry key="14" value="高中"></entry>
<entry key="17" value="大学"></entry>
</map>
</constructor-arg>
<!-- 给构造函数的第四个传数传参 -->
<constructor-arg>
<list>
<value>粥</value>
<value>粥</value>
<value>粥</value>
</list>
</constructor-arg>
</bean>
</beans>
这个配置文件采用的是构造函数的方式进行注入的,能够让程序工作起来,下面是另一配置文件采用的是setter方法注入,同样也可以让程序跑起来。
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="person" class="com.pp.Person">
<!-- 通过setter方法向Name元素设置值 -->
<property name="Name" value="ppTest"></property>
<!-- 通过setter方法向Set集合填加元素 -->
<property name="Set">
<set>
<value>我是中国人</value>
<value>哈哈</value>
<!-- 这个是加不去的,由Set的特性来决定的 -->
<value>哈哈</value>
</set>
</property>
<!-- 通过setter方法向Map集合填加元素 -->
<property name="Map">
<map>
<entry key="5" value="小学"></entry>
<entry key="11" value="初中"></entry>
<entry key="17" value="大学"></entry>
</map>
</property>
<!-- 通过setter方法向list集合填加元素 -->
<property name="Meal">
<list>
<value>粥</value>
<value>粥</value>
<value>粥</value>
</list>
</property>
</bean>
</beans>
如果想给一个属性装配一个空值,采用如下方式即可
<null/>
最新文章
- review简历之感想和建议
- Unity4升级Unity5后Image Effects问题
- SqlServerProxy的一些资料
- Spring系列之基本配置
- Git学习(4)基本操作
- bootstrap插件学习-bootstrap.tooltip.js
- php 利用activeMq+stomp实现消息队列
- git相关资料
- leetcode 70
- 一个完整的菜谱客户端(android源码)(有独立后台)
- cmd命令行指定系统延迟关机时间
- Export功能 导致 页面显示很多非法字符,还可能页面显示两次
- 区域医疗移动医疗影像解决方案2--基于FLEX的PACS
- iOS的launch image --备用
- (转载)URL与URI的区别
- SQL SERVER 2008 R2 自动备份并删除过期备份数据
- ThinkPHP - 自动创建 + 自动验证 + 自动完成
- python内建函数isinstance基础用法
- Google 搜索引擎语法
- Java Bean的规范