spring set注入-Map、Properties、List、Set注入
举例说明:
Person类
public class Person {
// 注入List集合
private List<String> names;
// 注入Set集合
private Set<String> addrs;
// 注入Map集合,多个电话
private Map<Integer, String> phones;
// 注入属性类对象
// Properties本质上也是一个Map集合
// Properties的父类Hashtable,Hashtable实现了Map接口。
// 虽然这个也是一个Map集合,但是和Map的注入方式有点像,但是不同。
// Properties的key和value只能是String类型。
private Properties properties;
@Override
public String toString() {
return "Person{" +
"names=" + names +
", addrs=" + addrs +
", phones=" + phones +
", properties=" + properties +
'}';
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public void setPhones(Map<Integer, String> phones) {
this.phones = phones;
}
public void setNames(List<String> names) {
this.names = names;
}
public void setAddrs(Set<String> addrs) {
this.addrs = addrs;
}
}
配置文件spring-collection.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">
<bean id="personBean" class="per.sxhzs.spring6.bean.Person">
<property name="properties">
<!--注入Properties属性类对象-->
<props>
<prop key="driver">com.mysql.cj.jdbc.Driver</prop>
<prop key="url">jdbc:mysql://localhost:3306/spring6</prop>
<prop key="username">root</prop>
<prop key="password">200229</prop>
</props>
</property>
<property name="phones">
<!--注入Map集合-->
<map>
<!--如果key和value不是简单类型就用这个配置-->
<!--<entry key-ref="" value-ref=""/>-->
<!--如果是简单类型就是key和value-->
<entry key="1" value="110"/>
<entry key="2" value="120"/>
<entry key="3" value="119"/>
<entry key="4" value="122"/>
</map>
</property>
<property name="names">
<!--List集合有序可重复-->
<list>
<value>张三</value>
<value>李四</value>
<value>王五</value>
<value>张三</value>
<value>张三</value>
</list>
</property>
<property name="addrs">
<!--set集合无序不可重复-->
<set>
<value>北京大兴区</value>
<value>北京海淀区</value>
<value>北京大兴区</value>
</set>
</property>
</bean>
</beans>
测试类
@Test
public void testCollection() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-collection.xml");
Person personBean = applicationContext.getBean("personBean", Person.class);
System.out.println(personBean);
}
运行效果图


浙公网安备 33010602011771号