用xml配置文件向对象注入复杂属性
创建一个Person类:
public class Person {
private String [] array;//数组
private List<String> list;//集合
private Map<String, String> map;//map
private Properties properties;//propertise
public void setArray(String[] array) {
this.array = array;
}
public void setList(List<String> list) {
this.list = list;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public void print(){//打印结果
System.out.println("数组--"+array);
System.out.println("list--"+list);
System.out.println("map--"+map);
System.out.println("properties--"+properties);
}
}
创建配置文件:bean3.xml
<?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.xsd">
<!-- 注入复杂属性:数组,list,map,properties -->
<bean id="person" class="iocdemo.Person"><!--class填写所创建类的完整路径(包名.类名) -->
<property name="array">
<list>
<value>array1</value>
<value>array2</value>
<value>array3</value>
</list>
</property>
<property name="list">
<list>
<value>list1</value>
<value>list2</value>
<value>list3</value>
</list>
</property>
<property name="map">
<map>
<entry key="map1" value="a"></entry>
<entry key="map2" value="b"></entry>
<entry key="map3" value="c"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="driverClass"> com.mysql.jdbc.Driver</prop>
<prop key="username">root</prop>
</props>
</property>
</bean>
</beans>
测试代码:
public class TestIoc3 {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext(“bean3.xml”);
Person person=(Person) context.getBean(“person”);//配置文件中对象的id
person.print();
}
}
运行效果:
数组–[Ljava.lang.String;@69ea3742//此处是因为未重写Person中的toString方法
list–[list1, list2, list3]
map–{map1=a, map2=b, map3=c}
properties–{driverClass=com.mysql.jdbc.Driver, username=root}
注意:配置文件中创建的对象的id和测试代码中getBean("")参数一致