即興的靈感

          思維是一種藝術; 藝術需要靈感。

          博客好友

          最新評論

          Spring筆記之二(Collection Injection)

          通過<list/>,<set/>,<map/>以及<props/>元素定義和設置與java collection類型對應的List,Set,Map,Rproperties的值。
          ?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?
          }


          1?public?class ?RefBean?{
          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


          運行結果:
          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必須定義,否則出現異常。


          ?
          鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
          ???? 隱姓埋名/低調華麗/簡單生活/完美人生

          posted on 2007-09-24 10:23 poetguo 閱讀(1692) 評論(2)  編輯  收藏 所屬分類: Spring

          評論

          # re: Spring筆記之二(Collection Injection) 2007-09-24 11:07 千里冰封

          我還是覺得SPRING的XML配置多了一些,EJB3.0就好多了  回復  更多評論   

          # re: Spring筆記之二(Collection Injection) 2007-09-24 12:09 improviser

          以后有時間也研究研究EJB3.0,到時再請教,先謝啦 :)  回復  更多評論   

          主站蜘蛛池模板: 永济市| 万荣县| 来宾市| 平远县| 新建县| 平和县| 吉隆县| 建湖县| 武城县| 岐山县| 永济市| 东辽县| 南溪县| 垫江县| 南岸区| 华池县| 崇明县| 桐梓县| 青海省| 津南区| 郸城县| 彭山县| 榆中县| 永德县| 遵义县| 玉门市| 秭归县| 东源县| 松溪县| 灵武市| 衡阳县| 柳河县| 孟州市| 和龙市| 榆中县| 阿拉善左旗| 民县| 嘉定区| 长沙县| 工布江达县| 姜堰市|