学习简化Spring的配置文件,对于多个有相同属性的对象,抽象出一个临时类来把公共属性包括进去.
在各个对象中不用再添加,而对于想设置个性化的属性值,再在各个对象中配置.
四个javaBean类. 及其相关get set方法
package zhc.love.dj.POJO; public class Bean2 { private Bean3 bean3 ; private Bean4 bean4 ; private Bean5 bean5 ; public Bean3 getBean3() { return bean3; } public void setBean3(Bean3 bean3) { this.bean3 = bean3; } public Bean4 getBean4() { return bean4; } public void setBean4(Bean4 bean4) { this.bean4 = bean4; } public Bean5 getBean5() { return bean5; } public void setBean5(Bean5 bean5) { this.bean5 = bean5; } }
package zhc.love.dj.POJO; public class Bean3 { private int id ; private String name ; private String password ; 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; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
package zhc.love.dj.POJO; public class Bean4 { private int id ; private String name ; 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; } }
package zhc.love.dj.POJO; public class Bean5 { private int age ; public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- 使用了内部抽象的定义abstractBean,这样其它有相同属性的类继承与这个抽象类 --> <!-- 注意abstract="true" parent="abstractBean" --> <bean id="abstractBean" abstract="true"> <property name="id" value="10"></property> <property name="name" value="zhc"></property> </bean> <bean id="bean3" class="zhc.love.dj.POJO.Bean3" parent="abstractBean"> <property name="password" value="100"></property> </bean> <bean id="bean4" class="zhc.love.dj.POJO.Bean4" parent="abstractBean"></bean> </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="bean" class="zhc.love.dj.POJO.Bean"> <!-- set方法所设置的属性 ,id不能重复--> <!-- 把实例化的事交给bean工厂来做 --> <property name="strvalue" value="I love you"></property> <!-- 两种形式给属性赋值 --> <property name="intvalue"> <value>1314</value> </property> <property name="listvalue"> <list> <value>list1</value> <value>list2</value> </list> </property> <property name="setvalue"> <set> <value>set1</value> <value>set2</value> </set> </property> <property name="arrayvalue"> <list> <value>arraylist1</value> <value>arraylist2</value> </list> </property> <property name="mapvalue"> <map> <entry key="key1" value="mapvalue1"></entry> <entry key="key2" value="mapvalue2"></entry> </map> </property> <property name="datavalue"> <value>2008-08-08</value> </property> </bean> <!-- 配置多个对象 --> <bean id="bean2" class="zhc.love.dj.POJO.Bean2"> <property name="bean3" ref="bean3" /> <property name="bean4" ref="bean4" /> <property name="bean5" ref="bean5" /> </bean> <bean id="bean5" class="zhc.love.dj.POJO.Bean5"> <property name="age" value="34"></property> </bean> </beans>
package zhc.love.dj.test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import zhc.love.dj.POJO.Bean; import zhc.love.dj.POJO.Bean2; public class TestCase extends junit.framework.TestCase { public void testSpringAbstract(){ BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml"); Bean2 bean2 = (Bean2)factory.getBean("bean2"); System.out.println("Bean2.Bean3.id="+ bean2.getBean3().getId()); System.out.println("Bean2.Bean3.name="+ bean2.getBean3().getName()); System.out.println("Bean2.Bean3.password="+ bean2.getBean3().getPassword()); System.out.println("Bean2.Bean4.id="+ bean2.getBean4().getId()); System.out.println("Bean2.Bean4.name="+ bean2.getBean4().getName()); System.out.println("Bean2.Bean5.age="+ bean2.getBean5().getAge()); } }