装配bean——集合类型注入值

装配bean——集合类型注入值:

本文介绍数组、list集合、set集合、map集合、properties的注值

源码地址:http://download.csdn.net/detail/tingzhiyi/9593835

1、基本信息

包名:com.beans.collection,包下3个类+beans.xml:
类一:Department.java  (基本类,定义一些变量)
类二:Employee.java    (员工类)
类三:App1.java       (测试类)
beans.xml       (配置文件)

2、公共代码:

Department.java中代码:

<span style="font-size:18px;">public class Department {

	private String name;//表示雇员名字
	private String [] empName;//数组注值
	public int[] number;//数组注值,表示雇员工资
	private List<Employee> emplist;//list集合注值
	private Set<Employee> empsets;//set集合注值
	private Map<String,Employee> empmaps;//map集合注值
	private Properties pp; //properties的注值

	各个变量的set/get方法,省略...
	}</span>

Employee.java中代码:

public class Employee {

	private String name;
	private int id;

	各个变量的set/get方法,省略...
	}
3、数组注值
beans.xml中代码:

<bean id="department" class="com.beans.collection.Department">
<property name="name" value="财务部"></property>
<!-- 给数组注值 -->
<property name="empName" >
	<list>
		<value>小明</value>
		<value>大明</value>
		<value>老明</value>
	</list>
</property>
<property name="number">
	<list>
		<value>5900</value>
		<value>8800</value>
		<value>6300</value>
	</list>
</property>
</bean>
App1.java中代码(显示结果):

public static void main(String[] args)
{
	ApplicationContext ac=new ClassPathXmlApplicationContext("com/beans/collection/beans.xml");
	Department dm=(Department)ac.getBean("department");
	System.out.println(dm.getName());//获取部门名称
	System.out.println("\n"+"*****通过一般数组取出数据*****");
	for(String emName:dm.getEmpName())
	{
		System.out.print(emName+" ");//获取雇员名称
	}
	System.out.println();
	for(int numbers:dm.getNumber())
	{
		System.out.print(numbers+" ");//获取雇员工资
	}
}


4、List注值
beans.xml中代码:

<bean id="department" class="com.beans.collection.Department">
<property name="name" value="财务部"></property>
<!-- 给list注值 -->
<property name="emplist">
	<list>
		<ref bean="emp1"/>
		<ref bean="emp2"/>
		<ref bean="emp1"/>
		<ref bean="emp3"/>
		<ref bean="emp2"/>
	</list>
</property>
</bean>
<!-- 定义的两个雇员 -->
<bean id="emp1" class="com.beans.collection.Employee">
	<property name="name" value="北京" />
	<property name="id" value="8001" />
</bean>
<bean id="emp2" class="com.beans.collection.Employee">
	<property name="name" value="天津" />
	<property name="id" value="8002" />
</bean>
<bean id="emp3" class="com.beans.collection.Employee">
	<property name="name" value="唐山" />
	<property name="id" value="8003" />
</bean>
App1.java中代码(显示结果):

public static void main(String[] args)
{
	ApplicationContext ac=new ClassPathXmlApplicationContext("com/beans/collection/beans.xml");
	Department dm=(Department)ac.getBean("department");
	System.out.println(dm.getName());//获取部门名称
	System.out.println("\n"+"*****通过List集合取出数据*****");
	for(Employee emps:dm.getEmplist())
	{
		System.out.print("name="+emps.getName()+"  ");	
	}
}


5、set注值
beans.xml中代码:

<bean id="department" class="com.beans.collection.Department">
<property name="name" value="财务部"></property>
<!-- 给set注值 -->
<property name="empsets">
	<set>
		<ref bean="emp1"/>
		<ref bean="emp2"/>
		<ref bean="emp3"/>
	</set>
</property>
</bean>
<!-- 定义的两个雇员 -->
<bean id="emp1" class="com.beans.collection.Employee">
	<property name="name" value="北京" />
	<property name="id" value="8001" />
</bean>
<bean id="emp2" class="com.beans.collection.Employee">
	<property name="name" value="天津" />
	<property name="id" value="8002" />
</bean>
<bean id="emp3" class="com.beans.collection.Employee">
	<property name="name" value="唐山" />
	<property name="id" value="8003" />
</bean>
App1.java中代码(显示结果):

public static void main(String[] args)
{
	ApplicationContext ac=new ClassPathXmlApplicationContext("com/beans/collection/beans.xml");
	Department dm=(Department)ac.getBean("department");
	System.out.println(dm.getName());//获取部门名称
	System.out.println("\n"+"*****通过Set集合取出数据*****");
	for(Employee emps:dm.getEmpsets())
	{
		System.out.print("name="+emps.getName()+"  ");	
	}
}


6、Map注值
beans.xml中代码:

<bean id="department" class="com.beans.collection.Department">
<property name="name" value="财务部"></property>
<!-- 给map注值 -->
<property name="empmaps">
	<map>
		<entry key="1" value-ref="emp1" />
		<entry key="2" value-ref="emp2" />
		<entry key="3" value-ref="emp3" />
	</map>
</property>
</bean>
<!-- 定义的两个雇员 -->
<bean id="emp1" class="com.beans.collection.Employee">
	<property name="name" value="北京" />
	<property name="id" value="8001" />
</bean>
<bean id="emp2" class="com.beans.collection.Employee">
	<property name="name" value="天津" />
	<property name="id" value="8002" />
</bean>
<bean id="emp3" class="com.beans.collection.Employee">
	<property name="name" value="唐山" />
	<property name="id" value="8003" />
</bean>
App1.java中代码(显示结果):
这里取出数据有两种方法:1、使用迭代器;2、使用简洁方法
public static void main(String[] args)
{
	ApplicationContext ac=new ClassPathXmlApplicationContext("com/beans/collection/beans.xml");
	Department dm=(Department)ac.getBean("department");
	System.out.println(dm.getName());//获取部门名称
	//1、使用迭代器
	System.out.println("\n"+"*****通过Map集合取出数据(迭代器方法取出)*****");
	Map<String,Employee> empmaps=dm.getEmpmaps();
	Iterator ite=empmaps.keySet().iterator();
	while(ite.hasNext())
	{
		String key=(String) ite.next();
		Employee emp=empmaps.get(key);
		System.out.println("key="+key+" "+emp.getName());
	}
	//2、使用简洁方法
	System.out.println("\n"+"*****通过Map集合取出数据(简洁方法取出)*****");
	for(Entry<String,Employee> entry1:dm.getEmpmaps().entrySet())
	{
		System.out.println("key="+entry1.getKey()+" "+entry1.getValue().getName()+" ");	
	}
}


7、properties注值
beans.xml中代码:

<bean id="department" class="com.beans.collection.Department">
<property name="name" value="财务部"></property>
<!-- properties注值 -->
<property name="pp">
	<props>
		<prop key="pp1">abcd</prop>
		<prop key="pp2">hello</prop>
		<prop key="pp3">你好</prop>
	</props>
</property>
</bean>
App1.java中代码(显示结果):
这里取出数据有两种方法:1、使用properties取出数据;2、使用Enumeration取出数据

public static void main(String[] args)
{
	ApplicationContext ac=new ClassPathXmlApplicationContext("com/beans/collection/beans.xml");
	Department dm=(Department)ac.getBean("department");
	System.out.println(dm.getName());//获取部门名称
	//通过properties取出数据
	System.out.println("*****通过properties取出数据*****");
	Properties pp=dm.getPp();
	//System.out.println(pp.get("pp1").toString());
	for(Entry<Object,Object> entry:pp.entrySet())
	{
		System.out.println(entry.getKey()+" : "+entry.getValue().toString());	
	}
	//通过Enumeration取出数据
	System.out.println("*****通过Enumeration取出数据*****");
	Enumeration en=pp.keys();
	while(en.hasMoreElements())
	{
		String key=(String) en.nextElement();
		System.out.println(key+" : "+pp.getProperty(key));	
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lizhifun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值