上节介绍了Bean的属性的注入,这一节我们详细说说集合属性的注入。
新建bean:
package com.js.demo7;
/**
* 拥有集合属性的bean
* @author js
*
*/
import java.util.List;
public class CollectionBean {
private List<String> list;
public void setList(List<String> list) {
this.list = list;
}
@Override
public String toString() {
return "CollectionBean [list=" + list + "]";
}
}
配置bean到applicationContext.xml:
<bean id="collectionBean" class="com.js.demo7.CollectionBean">
<property name="list">
<list>
<value>小小</value>
<value>点点</value>
</list>
</property>
</bean>编写测试类:
package com.js.demo7;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest7 {
@Test
public void test(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
CollectionBean collectionBean = (CollectionBean)applicationContext.getBean("collectionBean");
System.out.println(collectionBean);
}
}
运行测试:
如果是注入一个Set类型的属性:
修改CollectionBean:
package com.js.demo7;
/**
* 拥有集合属性的bean
* @author js
*
*/
import java.util.List;
import java.util.Set;
public class CollectionBean {
private List<String> list;
private Set<String> set;
public void setSet(Set<String> set) {
this.set = set;
}
public void setList(List<String> list) {
this.list = list;
}
@Override
public String toString() {
return "CollectionBean [list=" + list + ", set=" + set + "]";
}
}
修改CollectionBean的配置,注入set集合:
<bean id="collectionBean" class="com.js.demo7.CollectionBean">
<property name="list">
<list>
<value>小小</value>
<value>点点</value>
</list>
</property>
<property name="set">
<set>
<value>1set</value>
<value>2set</value>
</set>
</property>
</bean>运行测试:
:
接下来,我们再看一下Map类型的属性:
修改CollectionBean:
package com.js.demo7;
/**
* 拥有集合属性的bean
* @author js
*
*/
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CollectionBean {
private List<String> list;
private Set<String> set;
private Map<String, String> map;
public void setSet(Set<String> set) {
this.set = set;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public void setList(List<String> list) {
this.list = list;
}
@Override
public String toString() {
return "CollectionBean [list=" + list + ", set=" + set + ", map=" + map
+ "]";
}
}
接着,在applicationContext.xml中配置CollectionBean:
有两种写法:
1、复杂写法(较不常用)
<bean id="collectionBean" class="com.js.demo7.CollectionBean">
<property name="list">
<list>
<value>小小</value>
<value>点点</value>
</list>
</property>
<property name="set">
<set>
<value>1set</value>
<value>2set</value>
</set>
</property>
<property name="map">
<map>
<entry>
<key>
<value>复杂写法</value>
</key>
<value>花费时间多</value>
</entry>
</map>
</property>
</bean>2、简化写法(较常用):
<bean id="collectionBean" class="com.js.demo7.CollectionBean">
<property name="list">
<list>
<value>小小</value>
<value>点点</value>
</list>
</property>
<property name="set">
<set>
<value>1set</value>
<value>2set</value>
</set>
</property>
<property name="map">
<map>
<entry key="公司" value="创业"></entry>
<entry key="城市" value="某市"></entry>
</map>
</property>
</bean>另外,还可以在其中注入properties属性,仍以CollectionBean为例:
package com.js.demo7;
/**
* 拥有集合属性的bean
* @author js
*
*/
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class CollectionBean {
private List<String> list;
private Set<String> set;
private Map<String, String> map;
private Properties properties; //底层继承HashTable
public void setProperties(Properties properties) {
this.properties = properties;
}
public void setSet(Set<String> set) {
this.set = set;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public void setList(List<String> list) {
this.list = list;
}
@Override
public String toString() {
return "CollectionBean [list=" + list + ", set=" + set + ", map=" + map
+ ", properties=" + properties + "]";
}
}
配置bean:
<bean id="collectionBean" class="com.js.demo7.CollectionBean">
<property name="list">
<list>
<value>小小</value>
<value>点点</value>
</list>
</property>
<property name="set">
<set>
<value>1set</value>
<value>2set</value>
</set>
</property>
<property name="map">
<map>
<entry key="公司" value="创业"></entry>
<entry key="城市" value="某市"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="username">root</prop>
<prop key="passsword">admin</prop>
</props>
</property>
</bean>运行测试:
数组的注入,同List。

本文详细介绍了Spring框架中集合属性的注入方式,包括List、Set、Map及Properties类型的注入,并提供了具体的代码示例。
502

被折叠的 条评论
为什么被折叠?



