思想:T类含集合属性测试属性是基本类型
Bean
package Bean;
import java.util.List;
import java.util.Set;
public class T {
List<String> list;
Set<String> set;
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public Set<String> getSet() {
return set;
}
public void setSet(Set<String> set) {
this.set = set;
}
@Override
public String toString() {
return "T{" +
"list=" + list +
", set=" + set +
'}';
}
}
xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="Tbean" class="Bean.T">
<property name="list">
<list>
<value>AAA</value>
<value>BBB</value>
<value>CCC</value>
</list>
</property>
<property name="set">
<set>
<value>seta</value>
<value>setb</value>
<value>setc</value>
</set>
</property>
</bean>
</beans>
测试结果
public class Ttest {
public static void main(String[] args) {
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("Bean/Bean01.xml");
T tbean = ac.getBean("Tbean", T.class);
System.out.println(tbean);
}
}
输出:
T{list=[AAA, BBB, CCC], set=[seta, setb, setc]}
Process finished with exit code 0
当集合里的类型是复杂属性的时候
B类含A类的集合
A类
package Bean;
public class A {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "A{" +
"name='" + name + '\'' +
'}';
}
}
B类
package Bean;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class B {
List<A> aList;
Set<A> aset;
Map<String,A> aMap;
A[] aarray;
public List<A> getaList() {
return aList;
}
public void setaList(List<A> aList) {
this.aList = aList;
}
public Set<A> getAset() {
return aset;
}
public void setAset(Set<A> aset) {
this.aset = aset;
}
public Map<String, A> getaMap() {
return aMap;
}
public void setaMap(Map<String, A> aMap) {
this.aMap = aMap;
}
public A[] getAarray() {
return aarray;
}
public void setAarray(A[] aarray) {
this.aarray = aarray;
}
@Override
public String toString() {
return "B{" +
"aList=" + aList +
", aset=" + aset +
", aMap=" + aMap +
", aarray=" + Arrays.toString(aarray) +
'}';
}
}
xml
<bean id="A" class="Bean.A">
<property name="name"><value>这个是默认的A类对象</value></property>
</bean>
<bean id="bBean" class="Bean.B">
<!-- 数组-->
<property name="aarray">
<array>
<bean class="Bean.A"><property name="name" value="张三"></property></bean>
<bean class="Bean.A"><property name="name" value="李四"></property></bean>
</array>
</property>
<!-- Map-->
<property name="aMap">
<map>
<entry key="a" value-ref="A"></entry>
<entry key="b"><bean class="Bean.A"><property name="name"><value><![CDATA[<哇哈哈>]]></value></property> </bean></entry>
</map>
</property>
<property name="aList">
<list>
<bean class="Bean.A"><property name="name" value="科比"></property></bean>
<bean class="Bean.A"><property name="name" value="小科比"></property></bean>
</list>
</property>
<property name="aset">
<set>
<bean class="Bean.A"><property name="name" value="tom"></property></bean>
<bean class="Bean.A"><property name="name" value="jerry"></property></bean>
</set>
</property>
</bean>
测试结果
public class Btest {
public static void main(String[] args) {
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("Bean/Bean01.xml");
B bBean = ac.getBean("bBean", B.class);
System.out.println(bBean);
}
}
结果为:
B{aList=[A{name='科比'}, A{name='小科比'}],
aset=[A{name='tom'}, A{name='jerry'}],
aMap={a=A{name='这个是默认的A类对象'},b=A{name='<哇哈哈>'}}, aarray=[A{name='张三'}, A{name='李四'}]}
注意:
<![CDATA[<哇哈哈>]]>的写法
复杂属性的时候相比普通属性是直接用bean标签的,而且l里面也可以用bean 标签
properties