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">
<!-- spring容器 就是负责创建、管理、维护Bean 并且能够依赖注入到相应组件上 -->
<bean id="collectionBean" class="www.csdn.spring.collection.set.CollectionBean" scope="singleton" lazy-init="default">
<!-- set集合 -->
<property name="sets">
<set>
<value>岑红军</value>
<value>军哥</value>
<value>哈哈</value>
<value>呵呵</value>
<value>嘿嘿</value>
<value>洗洗</value>
</set>
</property>
<!-- list集合 -->
<property name="users">
<!-- <list>
<ref bean="u1"/>
<ref bean="u2"/>
<ref bean="u3"/>
<ref bean="u4"/>
</list> -->
<array>
<ref bean="u1"/>
<ref bean="u2"/>
<ref bean="u3"/>
<ref bean="u4"/>
</array>
</property>
<!-- map -->
<property name="map">
<map>
<entry key="1" value-ref="u1"></entry>
<entry key="2">
<ref bean="u2"/>
</entry>
<entry key="3" value-ref="u3">
</entry>
</map>
</property>
<property name="props">
<props>
<prop key="1">jdbc:oracle</prop>
<prop key="2">jdbc:mysql</prop>
<prop key="3">jdbc:access</prop>
</props>
</property>
</bean>
<bean id="u1" class="www.csdn.spring.collection.set.User">
<property name="name" value="deep" />
<property name="age" value="21" />
</bean>
<bean id="u2" class="www.csdn.spring.collection.set.User">
<property name="name" value="deepsoul" />
<property name="age" value="22"></property>
</bean>
<bean id="u3" class="www.csdn.spring.collection.set.User">
<property name="name" value="chrp" />
<property name="age" value="23" />
</bean>
<bean id="u4" class="www.csdn.spring.collection.set.User">
<property name="name" value="redarmy" />
<property name="age" value="28" />
</bean>
</beans>
User.java
package www.csdn.spring.collection.set;
public class User {
private String name;
private Integer age;
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
Collection.java
package www.csdn.spring.collection.set;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class CollectionBean {
//set集合
public Set<String> sets;
public void setSets(Set<String> sets) {
this.sets = sets;
}
public CollectionBean() {
super();
System.out.println("========================");
}
//list集合
public List<User> users;
public void setUsers(List<User> users) {
this.users = users;
}
//map集合
public Map<Integer,User> map;
public void setMap(Map<Integer, User> map) {
this.map = map;
}
//props集合
public Properties props;
public void setProps(Properties props) {
this.props = props;
}
}
TestBean.java
package www.csdn.spring.collection.set;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestBean {
@Test
public void tests(){
ApplicationContext context = new ClassPathXmlApplicationContext(
"classpath:spring-collection.xml");
CollectionBean bean = context.getBean("collectionBean",
CollectionBean.class);
System.out.println("---------------set----------------");
//获取set集合
Set<String> sets=bean.sets;
//得到迭代器
Iterator<String> it=sets.iterator();
//遍历
while (it.hasNext()){
System.out.println(it.next());
}
System.out.println("--------------list----------------");
List<User> users = bean.users;
for (User u : users) {
System.out.println(u.getName() + "-------------" + u.getAge());
}
System.out.println("----------------map1---------------");
//map1
Map<Integer,User> map=bean.map;
//得到map集合的key键值的set集合
Set<Integer> setkeys=map.keySet();
//得到key键值set集合的迭代器
Iterator<Integer> itkeys=setkeys.iterator();
//迭代键值
while(itkeys.hasNext()){
//得到一个具体的键值
Integer key = itkeys.next();
//通过map集合的get(key)方法 获取key键值对应的value值
User user =map.get(key);
System.out.println(key+"------"+user.getName()+"-----"+"------"+user.getAge());
}
System.out.println("--------------map2--------------");
//map2
//获取实体对象的set集合
Set<Entry<Integer,User>> setentry=map.entrySet();
//获取实体对象的迭代器
Iterator<Entry<Integer, User>> itentry =setentry.iterator();
//迭代
while(itentry.hasNext()){
//得到具体的Entry对象
Entry<Integer,User> entry=itentry.next();
//通过entry对象的getKey()和getValue得到
System.out.println(entry.getKey()+"----"+entry.getValue().getName()+"------"+entry.getValue().getAge());
}
System.out.println("--------------props-------------");
Properties props = bean.props;
//得到这个结合键值的key的set集合
Set<String> setprops = props.stringPropertyNames();
//String集合迭代器
Iterator<String> keystr = setprops.iterator();
while(keystr.hasNext()){
//具体键值
String key = keystr.next();
//getProperty(key)获取key对应的value值
System.out.println(key+"-----"+props.getProperty(key));
}
}
}
控制台输出:
2013-4-25 10:09:49 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@50c4fe76: startup date [Thu Apr 25 10:09:49 CST 2013]; root of context hierarchy
2013-4-25 10:09:49 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [spring-collection.xml]
2013-4-25 10:09:49 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3ff2cea2: defining beans [collectionBean,u1,u2,u3,u4]; root of factory hierarchy
========================
---------------set----------------
岑红军
军哥
哈哈
呵呵
嘿嘿
洗洗
--------------list----------------
deep-------------21
deepsoul-------------22
chrp-------------23
redarmy-------------28
----------------map1---------------
1------deep-----------21
2------deepsoul-----------22
3------chrp-----------23
--------------map2--------------
1----deep------21
2----deepsoul------22
3----chrp------23
--------------props-------------
3-----jdbc:access
2-----jdbc:mysql
1-----jdbc:oracle