bean的装配集合类型注入

来源:互联网 发布:淘宝出库单 编辑:程序博客网 时间:2024/05/29 04:38

①      如何给集合类型注入值.

java中主要的集合有几种: map set list / 数组

 

Department类:

package com.hsp.collection;

 

import java.util.List;

import java.util.Map;

import java.util.Set;

 

public class Department {

 

       privateString name;

       privateString [] empName;

       privateList<Employee> empList;

       privateSet<Employee> empsets;

       privateMap<String,Employee> empMaps;

      

       publicSet<Employee> getEmpsets() {

              returnempsets;

       }

       publicvoid setEmpsets(Set<Employee> empsets) {

              this.empsets= empsets;

       }

       publicString[] getEmpName() {

              returnempName;

       }

       publicvoid setEmpName(String[] empName) {

              this.empName= empName;

       }

       publicString getName() {

              returnname;

       }

       publicvoid setName(String name) {

              this.name= name;

       }

       publicList<Employee> getEmpList() {

              returnempList;

       }

       publicvoid setEmpList(List<Employee> empList) {

              this.empList= empList;

       }

       publicMap<String, Employee> getEmpMaps() {

              returnempMaps;

       }

       publicvoid setEmpMaps(Map<String, Employee> empMaps) {

              this.empMaps= empMaps;

       }

 

}

 

//Employeel类

package com.hsp.collection;

public class Employee {

       privateString name;

       privateint id;

       publicint getId() {

              returnid;

       }

       publicvoid setId(int id) {

              this.id= id;

       }

       publicString getName() {

              returnname;

       }

       publicvoid setName(String name) {

              this.name= name;

       }

}

 

beans.xml配置文件:

<?xml version="1.0"encoding="utf-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

              xmlns:context="http://www.springframework.org/schema/context"

              xmlns:tx="http://www.springframework.org/schema/tx"

              xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd

                            http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd

                            http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 

<bean id="department"class="com.hsp.collection.Department">

<property name="name"value="财务部"/>

<!-- 给数组注入值-->

<propertyname="empName">

       <list>

              <value>小明</value>

              <value>小明小明</value>

              <value>小明小明小明小明</value>

       </list>

</property>

<!-- list注入值 list中可以有相当的对象 -->

<propertyname="empList">

       <list>

              <ref bean="emp2" />

              <ref bean="emp1"/>

              <ref bean="emp1"/>

              <ref bean="emp1"/>

              <ref bean="emp1"/>

              <ref bean="emp1"/>

              <ref bean="emp1"/>

       </list>

</property>

<!-- set注入值set不能有相同的对象 -->

<propertyname="empsets">

       <set>

              <ref bean="emp1" />

              <ref bean="emp2"/>

              <ref bean="emp2"/>

              <ref bean="emp2"/>

              <ref bean="emp2"/>

       </set>

</property>

<!-- map注入值 map只有key不一样,就可以装配value -->

<propertyname="empMaps">

       <map>

              <entry key="11" value-ref="emp1"/>

              <entry key="22"value-ref="emp2"/>

              <entry key="33"value-ref="emp1"/>

       </map>

</property>

<!-- 给属性集合配置-->http协议 referer

<propertyname="pp">

       <props>

              <prop key="pp1">abcd</prop>

              <prop key="pp2">hello</prop>

       </props>

</property>

</bean>

<bean id="emp1"class="com.hsp.collection.Employee">

<property name="name"value="北京"/>

<property name="id"value="1"/>

</bean>

<bean id="emp2"class="com.hsp.collection.Employee">

<property name="name"value="天津"/>

<property name="id"value="2"/>

</bean>

</beans>

②      内部bean

<bean id=”foo” class=”....Foo”>

       <propertyname=”属性”>

       <!—第一方法引用-->

       <refbean=’bean对象名’/>

       <!—内部bean-->

       <bean>

       <properyt></property>

</bean>

</property>

</bean>

③      继承配置

 

public class Student

public class Gradate extends Student

 

在beans.xml文件中体现配置

<!-- 配置一个学生对象 -->

<bean id="student"class="com.hsp.inherit.Student">

       <propertyname="name" value="顺平" />

       <propertyname="age" value="30"/>

</bean>

<!-- 配置Grdate对象 -->

<bean id="grdate"parent="student" class="com.hsp.inherit.Gradate">

       <!--如果自己配置属性name,age,则会替换从父对象继承的数据  -->

       <propertyname="name" value="小明"/>

       <propertyname="degree" value="学士"/>

</bean>

 

 

package com.hsp.collection;import java.util.Enumeration;import java.util.Iterator;import java.util.Map;import java.util.Properties;import java.util.Map.Entry;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App1 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext ac=new ClassPathXmlApplicationContext("com/hsp/collection/beans.xml");Department department=(Department) ac.getBean("department");System.out.println(department.getName());for(String emName:department.getEmpName()){System.out.println(emName);}System.out.println("**********通过list集合取出数据*****");for(Employee e : department.getEmpList()){System.out.println("name="+e.getName()+" "+e.getId());}System.out.println("**********通过set集合取出数据*****");for(Employee e : department.getEmpsets()){System.out.println("name="+e.getName());}System.out.println("*******通过map集合取出数据 迭代器****");//1.迭代器Map<String,Employee> empmaps=department.getEmpMaps();Iterator it=empmaps.keySet().iterator();while(it.hasNext()){String key=(String) it.next();Employee emp=empmaps.get(key);System.out.println("key="+key+" "+emp.getName());}System.out.println("*******通过map集合取出数据 简洁方法****");//2.简洁方法for(Entry<String,Employee> entry1:department.getEmpMaps().entrySet()){System.out.println(entry1.getKey()+" "+entry1.getValue().getName());}System.out.println("*****通过Propertis取出数据*****");Properties pp=department.getPp();//System.out.println(pp.get("pp1").toString());for(Entry<Object,Object> entry:pp.entrySet()){System.out.println(entry.getKey().toString()+" "+entry.getValue().toString());}System.out.println("*****通过Enumeration取出*****");Enumeration en= pp.keys();while(en.hasMoreElements()){//Entry<Object,Object> elment= (Entry<Object, Object>) en.nextElement();//System.out.println(elment.getKey()+" "+elment.getValue());String key=(String) en.nextElement();System.out.println(key+" "+pp.getProperty(key));}}}

package com.hsp.collection;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;public class Department {private String name;private String [] empName;//数组private List<Employee> empList;//list集合private Set<Employee> empsets;//set集合private Map<String,Employee> empMaps;//map集合private Properties pp;//Properties的使用public Set<Employee> getEmpsets() {return empsets;}public void setEmpsets(Set<Employee> empsets) {this.empsets = empsets;}public String[] getEmpName() {return empName;}public void setEmpName(String[] empName) {this.empName = empName;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<Employee> getEmpList() {return empList;}public void setEmpList(List<Employee> empList) {this.empList = empList;}public Map<String, Employee> getEmpMaps() {return empMaps;}public void setEmpMaps(Map<String, Employee> empMaps) {this.empMaps = empMaps;}public Properties getPp() {return pp;}public void setPp(Properties pp) {this.pp = pp;}}
<?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:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><bean id="department" class="com.hsp.collection.Department"><property name="name" value="财务部"/><!-- 给数组注入值 --><property name="empName"><list><value>小明</value><value>小明小明</value><value>小明小明小明小明</value></list></property><!-- 给list注入值 list 中可以有相当的对象 --><property name="empList"><list><ref bean="emp2" /><ref bean="emp1"/><ref bean="emp1"/><ref bean="emp1"/><ref bean="emp1"/><ref bean="emp1"/><ref bean="emp1"/></list></property><!-- 给set注入值 set不能有相同的对象 --><property name="empsets"><set><ref bean="emp1" /><ref bean="emp2"/><ref bean="emp2"/><ref bean="emp2"/><ref bean="emp2"/></set></property><!-- 给map注入值 map只有key不一样,就可以装配value --><property name="empMaps"><map><entry key="11" value-ref="emp1" /> <entry key="22" value-ref="emp2"/><entry key="22" value-ref="emp1"/></map></property><!-- 给属性集合配置 --><property name="pp"><props><prop key="pp1">abcd</prop><prop key="pp2">hello</prop></props></property></bean><bean id="emp1" class="com.hsp.collection.Employee"><property name="name" value="北京"/><property name="id" value="1"/></bean><bean id="emp2" class="com.hsp.collection.Employee"><property name="name" value="天津"/><property name="id" value="2"/></bean></beans>


package com.hsp.collection;public class Employee {private String name;private int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


0 0
原创粉丝点击