zoukankan      html  css  js  c++  java
  • Spring中给Bean注入集合

    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/>

  • 相关阅读:
    Git版本控制使用方法入门教程
    github 与git 使用 及配置
    IOS ASI http 框架详解
    block 理解及 简单回调
    IOS在Xcode 4.x以上如何 创建 和 添加 静态库
    dispatch queues GCD
    理解UIApplication(转)
    android 标签对应的代码怎么写alignParentRight、marginRight
    Android 资源文件的命名规范问题
    输入法弹出,屏幕自动适应
  • 原文地址:https://www.cnblogs.com/riskyer/p/3241178.html
Copyright © 2011-2022 走看看