转:http://blog.csdn.net/ailiandeziwei/article/details/8848199
——————————————————————————————————
案例分析:
1、创建相应的Java类
1.1创建一个CollectionBean存放Java Collections types List、Set、Map and Properties集合对象。
- 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;
- }
- // 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;
- }
- }
- 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;
- }
- // 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;
- }
- }
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; } // 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; } }
1.2 在上类中使用到User类,User的代码如下:
- package www.csdn.spring.collection.set;
- public class User {
- private String name;
- private Integer age;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
- package www.csdn.spring.collection.set;
- public class User {
- private String name;
- private Integer age;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
package www.csdn.spring.collection.set; public class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
2、在spring-collection.xml文件中配置bean
- <?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="collectionBean" class="www.csdn.spring.collection.set.CollectionBean"
- scope="singleton" lazy-init="default">
- <!-- set集合 -->
- <property name="sets">
- <set>
- <value>陈红军</value>
- <value>军哥</value>
- </set>
- </property>
- <!-- list集合 -->
- <property name="users">
- <!-- 采用array配置 -->
- <array>
- <ref bean="u1" />
- <ref bean="u2" />
- </array>
- <!-- 或者采用list配置-->
- <!--
- <list>
- <ref bean="u1"/>
- <ref bean="u2"/>
- </list>
- -->
- </property>
- <!-- map集合 -->
- <property name="map">
- <map>
- <entry key="1" value-ref="u1" />
- <entry key="2">
- <ref bean="u2" />
- </entry>
- </map>
- </property>
- <!-- props集合 -->
- <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>
- <!-- User实体Bean的配置 -->
- <bean id="u1" class="www.csdn.spring.collection.set.User">
- <property name="name" value="陈红均" />
- <property name="age" value="28" />
- </bean>
- <bean id="u2" class="www.csdn.spring.collection.set.User">
- <property name="name" value="信心套" />
- <property name="age" value="28" />
- </bean>
- </beans>
- <?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="collectionBean" class="www.csdn.spring.collection.set.CollectionBean"
- scope="singleton" lazy-init="default">
- <!-- set集合 -->
- <property name="sets">
- <set>
- <value>陈红军</value>
- <value>军哥</value>
- </set>
- </property>
- <!-- list集合 -->
- <property name="users">
- <!-- 采用array配置 -->
- <array>
- <ref bean="u1" />
- <ref bean="u2" />
- </array>
- <!-- 或者采用list配置-->
- <!--
- <list>
- <ref bean="u1"/>
- <ref bean="u2"/>
- </list>
- -->
- </property>
- <!-- map集合 -->
- <property name="map">
- <map>
- <entry key="1" value-ref="u1" />
- <entry key="2">
- <ref bean="u2" />
- </entry>
- </map>
- </property>
- <!-- props集合 -->
- <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>
- <!-- User实体Bean的配置 -->
- <bean id="u1" class="www.csdn.spring.collection.set.User">
- <property name="name" value="陈红均" />
- <property name="age" value="28" />
- </bean>
- <bean id="u2" class="www.csdn.spring.collection.set.User">
- <property name="name" value="信心套" />
- <property name="age" value="28" />
- </bean>
- </beans>
<?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="collectionBean" class="www.csdn.spring.collection.set.CollectionBean" scope="singleton" lazy-init="default"> <!-- set集合 --> <property name="sets"> <set> <value>陈红军</value> <value>军哥</value> </set> </property> <!-- list集合 --> <property name="users"> <!-- 采用array配置 --> <array> <ref bean="u1" /> <ref bean="u2" /> </array> <!-- 或者采用list配置--> <!-- <list> <ref bean="u1"/> <ref bean="u2"/> </list> --> </property> <!-- map集合 --> <property name="map"> <map> <entry key="1" value-ref="u1" /> <entry key="2"> <ref bean="u2" /> </entry> </map> </property> <!-- props集合 --> <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> <!-- User实体Bean的配置 --> <bean id="u1" class="www.csdn.spring.collection.set.User"> <property name="name" value="陈红均" /> <property name="age" value="28" /> </bean> <bean id="u2" class="www.csdn.spring.collection.set.User"> <property name="name" value="信心套" /> <property name="age" value="28" /> </bean> </beans>
3、创建测试类 测试代码如下:
- @Test
- public void testSets() {
- //创建应用上下文对象
- ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-collection.xml");
- //根据上下文对象的getBean方法获取指定的Bean对象
- 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());
- }
- //map第一种遍历方式
- System.out.println("-----------------------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());
- }
- // map第二种遍历方式
- System.out.println("----------------------------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分别得到key与value值
- 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();
- //key集合迭代器
- Iterator<String> keystr = setprops.iterator();
- while(keystr.hasNext()){
- //具体键值
- String key = keystr.next();
- //getProperty(key)获取key对应的value值
- System.out.println(key+"-------------"+props.getProperty(key));
- }
- }
- @Test
- public void testSets() {
- //创建应用上下文对象
- ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-collection.xml");
- //根据上下文对象的getBean方法获取指定的Bean对象
- 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());
- }
- //map第一种遍历方式
- System.out.println("-----------------------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());
- }
- // map第二种遍历方式
- System.out.println("----------------------------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分别得到key与value值
- 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();
- //key集合迭代器
- Iterator<String> keystr = setprops.iterator();
- while(keystr.hasNext()){
- //具体键值
- String key = keystr.next();
- //getProperty(key)获取key对应的value值
- System.out.println(key+"-------------"+props.getProperty(key));
- }
- }