Spring复习-自定义类注入,list set 地图自定义类注入
Spring复习-自定义类注入,list set map自定义类注入
我们对类中的参数注入的时候,有的时候,注入的是我们自己定义的类,而不是java基本的类型。
如下
Home.java是我们自己定义的类
package com.endual.bean; public class Home { private String address ; private int phone ; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getPhone() { return phone; } public void setPhone(int phone) { this.phone = phone; } }
People.java
package com.endual.bean; import java.util.List; import java.util.Map; import java.util.Set; public class People { private Home home; private Home[] homes; private List<Home> lists; private Map<Integer,Home> maps; private Set<Home> sets; public Home getHome() { return home; } public void setHome(Home home) { this.home = home; } public Home[] getHomes() { return homes; } public void setHomes(Home[] homes) { this.homes = homes; } public List<Home> getLists() { return lists; } public void setLists(List<Home> lists) { this.lists = lists; } public Map<Integer, Home> getMaps() { return maps; } public void setMaps(Map<Integer, Home> maps) { this.maps = maps; } public Set<Home> getSets() { return sets; } public void setSets(Set<Home> sets) { this.sets = sets; } }
配置文件的配置
<?xml version="1.0" encoding="UTF-8"?> <!-- - Middle tier application context definition for the image database. --> <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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="people" class="com.endual.bean.People"> <property name="home"> <bean id="people_home" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学people_home" /> <property name="phone" value="123123123" /> </bean> </property> <property name="homes"> <list> <bean id="people_homes1" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学people_homes1" /> <property name="phone" value="123123123" /> </bean> <bean id="people_homes2" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学people_homes2" /> <property name="phone" value="123123123" /> </bean> <bean id="people_homes3" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学people_homes3" /> <property name="phone" value="123123123" /> </bean> </list> </property> <property name="lists"> <list> <bean id="lists1" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学lists1" /> <property name="phone" value="123123123" /> </bean> <bean id="lists2" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学lists2" /> <property name="phone" value="123123123" /> </bean> <bean id="lists3" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学lists3" /> <property name="phone" value="123123123" /> </bean> </list> </property> <property name="maps"> <map key-type="int"> <entry key="1"> <bean id="maps1" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学maps1" /> <property name="phone" value="123123123" /> </bean> </entry> <entry key="2"> <bean id="maps2" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学maps1" /> <property name="phone" value="123123123" /> </bean> </entry> <entry key="3"> <bean id="maps3" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学maps1" /> <property name="phone" value="123123123" /> </bean> </entry> </map> </property> <property name="sets"> <set> <bean id="set1" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学set1" /> <property name="phone" value="123123123" /> </bean> <bean id="set2" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学set2" /> <property name="phone" value="123123123" /> </bean> <bean id="set3" class="com.endual.bean.Home"> <property name="address" value="浙江工商大学set3" /> <property name="phone" value="123123123" /> </bean> </set> </property> </bean> </beans>
测试
package com.endual.main; import java.io.FileInputStream; import java.io.InputStream; import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.endual.bean.Home; import com.endual.bean.People; public class MainRun { public static void main(String[] args) { // ClassPathXmlApplicationContext factory=new ClassPathXmlApplicationContext("bean.xml"); ApplicationContext context=new FileSystemXmlApplicationContext("src/applicationContext.xml"); People hello = (People)context.getBean("people"); Home home = hello.getHome() ; System.out.println(home.getAddress()); Home[] homes = hello.getHomes() ; System.out.println(homes[1].getAddress()); List<Home> lists = hello.getLists() ; System.out.println(lists.get(0).getAddress()); Map<Integer,Home> maps = hello.getMaps() ; System.out.println(maps.get(1).getAddress()); Set<Home> sets = hello.getSets() ; System.out.println(sets.iterator().next().getAddress()); } }
打印结果:
浙江工商大学people_home 浙江工商大学people_homes2 浙江工商大学lists1 浙江工商大学maps1 浙江工商大学set1
感受:
感觉到,其他自定义类的书写和我们一般的是一样的,就是用bean作为我们的参数的一个整体