前面写到了bean的级联属性,所以现在来写写集合属性,这的第二天的学习就基本结束了,想了解的朋友可以打开全类名的bean配置及属性。
级联属性
1.使用<list> 标签
由于是按前一章的基础写的,所以有什么配置问题,请自行查阅,这里就重头开始。
1)首先修改Car.java中的person变量
package com.spring.day2;
import java.util.List;
public class Car {
private String brand;//牌子
private String number;//牌号
private List<Person> persons;//修改这里
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
public Car(String brand, String number, List<Person> persons) {
super();
this.brand = brand;
this.number = number;
this.persons = persons;
}
public Car() {
super();
}
@Override
public String toString() {
return "Car [brand=" + brand + ", number=" + number + ", persons=" + persons + "]";
}
}
2)接下里就是修改application.xml文件了。在property标签内写入list标签。
<?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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<bean id="person" class="com.spring.day2.Person">
<constructor-arg value="男" index="2" type="java.lang.String"></constructor-arg>
<constructor-arg index="0">
<value><![CDATA[<haha+>]]></value>
</constructor-arg>
<constructor-arg type="java.lang.Integer">
<value><![CDATA[13]]></value>
</constructor-arg>
</bean>
<bean id="car" class="com.spring.day2.Car">
<property name="brand" value="Audio"></property>
<property name="number" value="粤G98K13"></property>
<property name="persons">
<list>
<ref bean="person"/>
<bean class="com.spring.day2.Person">
<property name="name" value="yaya"></property>
<property name="sex" value="男"></property>
<property name="age" value="100"></property>
</bean>
</list>
</property>
</bean>
</beans>
结果显示:
Person [name=<haha+>, age=13, sex=男]
Car [brand=Audio, number=粤G98K13, persons=[Person [name=<haha+>, age=13, sex=男], Person [name=yaya, age=100, sex=男]]]
2.使用<map> 标签定义
1)首先还是Car.java操作基本一样的。还是要改persons。
package com.spring.day2;
import java.util.List;
import java.util.Map;
public class Car {
private String brand;//牌子
private String number;//牌号
private Map<String, Person> persons;//修改这里
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Car(String brand, String number, Map<String, Person> persons) {
super();
this.brand = brand;
this.number = number;
this.persons = persons;
}
public Map<String, Person> getPersons() {
return persons;
}
public void setPersons(Map<String, Person> persons) {
this.persons = persons;
}
public Car() {
super();
}
@Override
public String toString() {
return "Car [brand=" + brand + ", number=" + number + ", persons=" + persons + "]";
}
}
2)接着修改application.xml,使用<map>标签,运行结果是跟上面的结果是一样的。
<?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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<bean id="person" class="com.spring.day2.Person">
<constructor-arg value="男" index="2" type="java.lang.String"></constructor-arg>
<constructor-arg index="0">
<value><![CDATA[<haha+>]]></value>
</constructor-arg>
<constructor-arg type="java.lang.Integer">
<value><![CDATA[13]]></value>
</constructor-arg>
</bean>
<bean id="car" class="com.spring.day2.Car">
<property name="brand" value="Audio"></property>
<property name="number" value="粤G98K13"></property>
<property name="persons">
<map>
<entry key="AA" value-ref="person"></entry>
<entry key="BB">
<bean class="com.spring.day2.Person">
<property name="name" value="yaya"></property>
<property name="sex" value="男"></property>
<property name="age" value="100"></property>
</bean>
</entry>
</map>
</property>
</bean>
</beans>
行了基本就这些了,内容还有很多的是写不完的,所以还是需要自己去发现。