Spring筆記之二(Collection Injection)
?1?import
?java.util.Iterator;
?2?import ?java.util.List;
?3?import ?java.util.Map;
?4?import ?java.util.Properties;
?5?import ?java.util.Set;
?6?
?7?import ?org.springframework.beans.factory.BeanFactory;
?8?import ?org.springframework.beans.factory.xml.XmlBeanFactory;
?9?import ?org.springframework.core.io.FileSystemResource;
10?
11?public?class ?CollectionInjection?{
12?
13?????private ?Map?map;
14?
15?????private ?Properties?props;
16?
17?????private ?Set?set;
18?
19?????private ?List?list;
20?
21?????public?static?void ?main(String[]?args)?{
22?????????BeanFactory?factory?=?new?XmlBeanFactory(new ?FileSystemResource(
23?????????????????"src/applicationContext.xml" ));
24?
25?????????CollectionInjection?instance?= ?(CollectionInjection)
????????????????????????????????????????? factory.getBean( " injectCollection " );
26? ????????instance.displayInfo();
27? ????}
28?
29?????public?void ?setList(List?list)?{
30?????????this.list?= ?list;
31? ????}
32?
33?????public?void ?setSet(Set?set)?{
34?????????this.set?= ?set;
35? ????}
36?
37?????public?void ?setMap(Map?map)?{
38?????????this.map?= ?map;
39? ????}
40?
41?????public?void ?setProps(Properties?props)?{
42?????????this.props?= ?props;
43? ????}
44?
45?????public?void ?displayInfo()?{
46?
47?????????//?display?the?Map
48?????????Iterator?i?= ?map.keySet().iterator();
49?
50?????????System.out.println("Map?contents:\n" );
51?????????while ?(i.hasNext())?{
52?????????????Object?key?= ?i.next();
53?????????????System.out.println("Key:?"?+?key?+?"?-?Value:?"?+ ?map.get(key));
54? ????????}
55?
56?????????//?display?the?properties
57?????????i?= ?props.keySet().iterator();
58?????????System.out.println("\nProperties?contents:\n" );
59?????????while ?(i.hasNext())?{
60?????????????String?key?= ?i.next().toString();
61?????????????System.out.println("Key:?"?+?key?+?"?-?Value:?"
62?????????????????????+ ?props.getProperty(key));
63? ????????}
64?
65?????????//?display?the?set
66?????????i?= ?set.iterator();
67?????????System.out.println("\nSet?contents:\n" );
68?????????while ?(i.hasNext())?{
69?????????????System.out.println("Value:?"?+ ?i.next());
70? ????????}
71?
72?????????//?display?the?list
73?????????i?= ?list.iterator();
74?????????System.out.println("\nList?contents:\n" );
75?????????while ?(i.hasNext())?{
76?????????????System.out.println("Value:?"?+ ?i.next());
77? ????????}
78? ????}
79? }
import
?java.util.Iterator;?2?import ?java.util.List;
?3?import ?java.util.Map;
?4?import ?java.util.Properties;
?5?import ?java.util.Set;
?6?
?7?import ?org.springframework.beans.factory.BeanFactory;
?8?import ?org.springframework.beans.factory.xml.XmlBeanFactory;
?9?import ?org.springframework.core.io.FileSystemResource;
10?
11?public?class ?CollectionInjection?{
12?
13?????private ?Map?map;
14?
15?????private ?Properties?props;
16?
17?????private ?Set?set;
18?
19?????private ?List?list;
20?
21?????public?static?void ?main(String[]?args)?{
22?????????BeanFactory?factory?=?new?XmlBeanFactory(new ?FileSystemResource(
23?????????????????"src/applicationContext.xml" ));
24?
25?????????CollectionInjection?instance?= ?(CollectionInjection)
????????????????????????????????????????? factory.getBean( " injectCollection " );
26? ????????instance.displayInfo();
27? ????}
28?
29?????public?void ?setList(List?list)?{
30?????????this.list?= ?list;
31? ????}
32?
33?????public?void ?setSet(Set?set)?{
34?????????this.set?= ?set;
35? ????}
36?
37?????public?void ?setMap(Map?map)?{
38?????????this.map?= ?map;
39? ????}
40?
41?????public?void ?setProps(Properties?props)?{
42?????????this.props?= ?props;
43? ????}
44?
45?????public?void ?displayInfo()?{
46?
47?????????//?display?the?Map
48?????????Iterator?i?= ?map.keySet().iterator();
49?
50?????????System.out.println("Map?contents:\n" );
51?????????while ?(i.hasNext())?{
52?????????????Object?key?= ?i.next();
53?????????????System.out.println("Key:?"?+?key?+?"?-?Value:?"?+ ?map.get(key));
54? ????????}
55?
56?????????//?display?the?properties
57?????????i?= ?props.keySet().iterator();
58?????????System.out.println("\nProperties?contents:\n" );
59?????????while ?(i.hasNext())?{
60?????????????String?key?= ?i.next().toString();
61?????????????System.out.println("Key:?"?+?key?+?"?-?Value:?"
62?????????????????????+ ?props.getProperty(key));
63? ????????}
64?
65?????????//?display?the?set
66?????????i?= ?set.iterator();
67?????????System.out.println("\nSet?contents:\n" );
68?????????while ?(i.hasNext())?{
69?????????????System.out.println("Value:?"?+ ?i.next());
70? ????????}
71?
72?????????//?display?the?list
73?????????i?= ?list.iterator();
74?????????System.out.println("\nList?contents:\n" );
75?????????while ?(i.hasNext())?{
76?????????????System.out.println("Value:?"?+ ?i.next());
77? ????????}
78? ????}
79? }
1?public?class
?RefBean?{
2?????public ?String?toString()
3? ????{
4?????????return?"refBean" ;
5? ????}
6?}
2?????public ?String?toString()
3? ????{
4?????????return?"refBean" ;
5? ????}
6?}
?1?<?xml?version="1.0"?encoding="UTF-8"?>
?2?<! DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"
??? "http://www.springframework.org/dtd/spring-beans.dtd" >
?3?<beans>
?4? ????
?5?????<!--?oracle?bean?used?for?a?few?examples?-->
?6?????<bean?id="refBean"?name="refB"?class="RefBean"/>
?7?
?8?????<!--?collection?injection?samples?-->
?9?????<bean?id="injectCollection"?class="CollectionInjection">
10?????????<property?name="map">
11?????????????<map>
12?????????????????<entry?key="nameValue">
13?????????????????????<value>gzhb_improviser</value>
14?????????????????</entry>
15?????????????????<entry?key="refBeanValue">
16?????????????????????<ref?local="refBean"/>
17?????????????????</entry>
18?????????????</map>
19?????????</property>
20?????????<property?name="props">
21?????????????<props>
22?????????????????<prop?key="firstName">?gzhb?</prop>
23?????????????????<prop?key="secondName">?improviser?</prop>
24?????????????</props>
25?????????</property>
26?????????<property?name="set">
27?????????????<set>
28?????????????????<value>gzhb</value>
29?????????????????<ref?local="refBean"/>
30?????????????</set>
31?????????</property>
32?????????<property?name="list">
33?????????????<list>
34?????????????????<value>improviser</value>
35?????????????????<ref?local="refBean"/>
36?????????????</list>
37?????????</property>
38?????</bean>
39?</beans
?2?<! DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"
??? "http://www.springframework.org/dtd/spring-beans.dtd" >
?3?<beans>
?4? ????
?5?????<!--?oracle?bean?used?for?a?few?examples?-->
?6?????<bean?id="refBean"?name="refB"?class="RefBean"/>
?7?
?8?????<!--?collection?injection?samples?-->
?9?????<bean?id="injectCollection"?class="CollectionInjection">
10?????????<property?name="map">
11?????????????<map>
12?????????????????<entry?key="nameValue">
13?????????????????????<value>gzhb_improviser</value>
14?????????????????</entry>
15?????????????????<entry?key="refBeanValue">
16?????????????????????<ref?local="refBean"/>
17?????????????????</entry>
18?????????????</map>
19?????????</property>
20?????????<property?name="props">
21?????????????<props>
22?????????????????<prop?key="firstName">?gzhb?</prop>
23?????????????????<prop?key="secondName">?improviser?</prop>
24?????????????</props>
25?????????</property>
26?????????<property?name="set">
27?????????????<set>
28?????????????????<value>gzhb</value>
29?????????????????<ref?local="refBean"/>
30?????????????</set>
31?????????</property>
32?????????<property?name="list">
33?????????????<list>
34?????????????????<value>improviser</value>
35?????????????????<ref?local="refBean"/>
36?????????????</list>
37?????????</property>
38?????</bean>
39?</beans
import ?java.util.List;
import ?java.util.Map;
import ?java.util.Properties;
import ?java.util.Set;
import ?org.springframework.beans.factory.BeanFactory;
import ?org.springframework.beans.factory.xml.XmlBeanFactory;
import ?org.springframework.core.io.FileSystemResource;
public ? class ?CollectionInjection?{
???? private ?Map?map;
???? private ?Properties?props;
???? private ?Set?set;
???? private ?List?list;
???? public ? static ? void ?main(String[]?args)?{
????????BeanFactory?factory? = ? new ?XmlBeanFactory( new ?FileSystemResource(
???????????????? " src/applicationContext.xml " ));
????????CollectionInjection?instance? = ?(CollectionInjection)?factory.getBean( " injectCollection " );
????????instance.displayInfo();
????}
???? public ? void ?setList(List?list)?{
???????? this .list? = ?list;
????}
???? public ? void ?setSet(Set?set)?{
???????? this .set? = ?set;
????}
???? public ? void ?setMap(Map?map)?{
???????? this .map? = ?map;
????}
???? public ? void ?setProps(Properties?props)?{
???????? this .props? = ?props;
????}
???? public ? void ?displayInfo()?{
???????? // ?display?the?Map
????????Iterator?i? = ?map.keySet().iterator();
????????System.out.println( " Map?contents:\n " );
???????? while ?(i.hasNext())?{
????????????Object?key? = ?i.next();
????????????System.out.println( " Key:? " ? + ?key? + ? " ?-?Value:? " ? + ?map.get(key));
????????}
???????? // ?display?the?properties
????????i? = ?props.keySet().iterator();
????????System.out.println( " \nProperties?contents:\n " );
???????? while ?(i.hasNext())?{
????????????String?key? = ?i.next().toString();
????????????System.out.println( " Key:? " ? + ?key? + ? " ?-?Value:? "
???????????????????? + ?props.getProperty(key));
????????}
???????? // ?display?the?set
????????i? = ?set.iterator();
????????System.out.println( " \nSet?contents:\n " );
???????? while ?(i.hasNext())?{
????????????System.out.println( " Value:? " ? + ?i.next());
????????}
???????? // ?display?the?list
????????i? = ?list.iterator();
????????System.out.println( " \nList?contents:\n " );
???????? while ?(i.hasNext())?{
????????????System.out.println( " Value:? " ? + ?i.next());
????????}
????}
}
運行結果:
Map contents:
Key: nameValue - Value: gzhb_improviser
Key: refBeanValue - Value: refBean
Properties contents:
Key: secondName - Value: improviser
Key: firstName - Value: gzhb
Set contents:
Value: gzhb
Value: refBean
List contents:
Value: improviser
Value: refBean
注意:map的key或value值,或set的value值不能一下元素:
bean,ref,idref,list,set,map,props,vaues,null
集合合并
Spring2.0支持集合合并,子類Bean實例可以合并和重寫抽象父類Bean實例的集合屬性。
???1.??
<
beans
>
??
???2.? < bean? id ="parent" ?abstract ="true" ?class ="example.ComplexObject" > ??
???3.? < property? name ="pro" > ??
???4.? < props > ??
???5.? < prop? key ="pro1" > pro1 </ prop > ??
???6.? < prop? key ="pro3" >pro3 </ prop > ??
???7.? </ props > ??
???8.? </ property > ??
???9.? </ bean > ??
??10.? < bean? id ="child" ?parent ="parent" > ??
??11.? < property? name ="pro" > ??
??12.? <!-- ?the?merge?is?specified?on?the?*child*?collection?definition? --> ??
??13.? < props? merge ="true" > ??
??14.? < prop? key ="pro2" > pro2 </ prop > ??
??15.? < prop? key ="pro3" > pro3 </ prop > ??
??16.? </ props > ??
??17.? </ property > ??
??18.? </ bean > ??
??19.? < beans > ??
通過合并,子bean的pro3值覆蓋父bean的值,不同集合類型不能合并,子bean中的merge必須定義,否則出現異常。
???2.? < bean? id ="parent" ?abstract ="true" ?class ="example.ComplexObject" > ??
???3.? < property? name ="pro" > ??
???4.? < props > ??
???5.? < prop? key ="pro1" > pro1 </ prop > ??
???6.? < prop? key ="pro3" >pro3 </ prop > ??
???7.? </ props > ??
???8.? </ property > ??
???9.? </ bean > ??
??10.? < bean? id ="child" ?parent ="parent" > ??
??11.? < property? name ="pro" > ??
??12.? <!-- ?the?merge?is?specified?on?the?*child*?collection?definition? --> ??
??13.? < props? merge ="true" > ??
??14.? < prop? key ="pro2" > pro2 </ prop > ??
??15.? < prop? key ="pro3" > pro3 </ prop > ??
??16.? </ props > ??
??17.? </ property > ??
??18.? </ bean > ??
??19.? < beans > ??
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
???? 隱姓埋名/低調華麗/簡單生活/完美人生
posted on 2007-09-24 10:23 poetguo 閱讀(1692) 評論(2) 編輯 收藏 所屬分類: Spring