<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring高級應用之注入各類集合

      先定義一個測試類,由于本文將要介紹注入各種集合時如何配置,故這個類包含各種集合,類名和屬性名不好取,沒有特殊含義:

      1 public  class  Test {
      2      private  List<String> listTest;
      3      private  Map<String, Object> mapTest;
      4      private  Set setTest;
      5      private  String[] arrayTest;
      6      private  Properties propertiesTest;
      7      //下面是各個屬性的setter,此處省略
      8      //......
      9 }

      Test類中,分別定義了List,Map,Set,Array等5種集合類型的屬性,下面在Spring配置文件中,分別為這些類型的屬性注入值:

       1 < bean  id = "test"  class = "com.abc.Test" >
       2      <!-- List類型的屬性 -->
       3      < property  name = "listTest" >
       4          <!-- 為list類型的屬性注入值時,使用<list>元素 -->
       5          < list >
       6              <!-- 只要類型滿足,每個<value>,<ref>,<bean>都可以配置一個list的元素 -->
       7              < value >ListA</ value >
       8              < value >ListB</ value >
       9              < value >ListC</ value >
      10          </ list >
      11      </ property >
      12      
      13      <!-- Map類型的屬性 -->
      14      < property  name = "mapTest" >
      15          <!-- 為map類型的屬性注入值時,使用<map>元素 -->
      16          < map >
      17              <!-- 每一個<entry>都為<map>配置一個K-V對,同樣, -->
      18              < entry  key = "key1"  value = "value1"  />
      19              <!-- 下面這個value指向了在此Spring文件中定義的另一個叫object的Bean -->
      20              < entry  key = "key2"  value-ref = "object"  />
      21          </ map >
      22      </ property >
      23      
      24      <!-- Set類型的屬性 -->
      25      < property  name = "setTest" >
      26          <!-- 為set類型的屬性注入值時,使用<set>元素 -->
      27          < set >
      28              <!-- 只要類型滿足,每個<value>,<ref>,<bean>都可以配置一個list的元素 -->
      29              < value >SetA</ value >
      30              <!-- 下面是一個嵌套Bean的定義。關(guān)于什么是嵌套Bean,請看:http://my.oschina.net/itblog/blog/204378 -->
      31              < bean  class = "com.abc.OtherBean1"  />
      32              <!-- 下面引用了此Spring文件中定義的另一個Bean -->
      33              < ref  local = "com.abc.OtherBean2"  />
      34          </ set >
      35      </ property >
      36      
      37      <!-- Properties類型的屬性 -->
      38      < property  name = "propertiesTest" >
      39          < props >
      40              <!-- 每個<prop>元素指定一個屬性項,其中key指定屬性名 -->
      41              < prop  key = "prop1" >value1</ prop >
      42              < prop  key = "prop2" >value2</ prop >
      43          </ props >
      44      </ property >
      45      
      46      <!-- 數(shù)組類型的屬性 -->
      47      < property  name = "arrayTest" >
      48          <!-- 為數(shù)組類型的屬性注入值時,使用<array>元素 -->
      49          < array >
      50              <!-- 只要類型滿足,每個<value>,<ref>,<bean>都可以配置一個list的元素 -->
      51              < value >Array1</ value >
      52              < bean  class = "com.abc.OtherBean1"  />
      53              < ref  local = "com.abc.OtherBean2"  />
      54          </ array >
      55      </ property >
      56 </ bean >

       由于集合元素有可以是基本類型值、引用容器中其他Bean、嵌套Bean或集合屬性等,因此<list>、<set>、和<key>元素又可以接受如下的子元素:

      • value:指定集合元素是基本數(shù)據(jù)類型值或字符串類型值

      • ref:指定集合元素是容器中另一個Bean實例

      • bean:指定集合元素是一個嵌套Bean

      • list、set、map及props:指定集合元素值又是集合

          <props>元素適用于配置Properties類型的屬性,Properties類型時一種特殊的類型,其key和value都只能是字符串,故Spring配置Properties類型的屬性都比較簡單:每個屬性項只要分別給出屬性名和屬性值就足夠了。

          當使用<map>元素配置Map類型屬性時稍顯復雜,因為Map類型的元素由多個<entry>組成,每個<entry>又需要配置key和value兩個屬性。其中<entry>屬性支持以下幾個屬性:

      • key:當key是基本類型或字符串時使用

      • key-ref:當key類型是容器中定義的另一個Bean時使用

      • value:當value是基本類型或字符串時使用

      • value-ref:當value是容器中定義的另一個Bean時使用

          Spring還提供了一個簡化語法來支持Properties形參的setter方法,例如我們可以使用如下配置片段來配置Properties類型的屬性:

      1 < property  name = "propertiesTest" >
      2      < value >
      3          key1=value1
      4          key2=value2
      5      </ value >
      6 </ property >

      雖然這種配置方式更簡單,但是它也有一個缺點:屬性名、屬性值都只能是英文或數(shù)字,不能包含中文字符

          從Spring2開始,Spring IoC容器支持集合的合并:子Bean中的集合屬性可以從其父Bean的集合屬性繼承而來,同時,子Bean中的屬性會覆蓋父Bean中屬性名相同的值。也就是說,子Bean的集合屬性的最終值是父Bean、子Bean合并后的最終結(jié)果,下面是一個示例:

       1 <!-- 將parent類型定義成抽象類 -->
       2 < bean  id = "parent"  abstract = "true"  class = "com.abc.Parent" >
       3      <!-- 定義Properties類型的集合屬性 -->
       4      < property  name = "websites" >
       5          < props >
       6              < prop  key = "baidu" >www.baidu.com</ props >
       7              < prop  key = "google" >www.google.com.hk</ prop >
       8          < props >
       9      </ property >
      10 </ bean >
      11 < bean  id = "child"  parent = "parent" >
      12      < property  name = "websites" >
      13          <!-- 注意,這里子Bean在集合元素上加了屬性"merge=true" -->
      14          < props  merge = "true" >
      15              < prop  key = "google" >www.google.com</ prop >
      16              < prop  key = "tencent" >www.qq.com</ prop >
      17          < props >
      18      </ property >    
      19 </ bean >

       通過上面的配置后,child中的屬性將變?yōu)椋?/p>

      1 baidu=www.baidu.com
      2 google=www.google.com
      3 tencent=www.qq.com

       

      posted @ 2022-12-01 22:22  明月鎮(zhèn)魂  閱讀(203)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美老熟妇喷水| 一本大道久久香蕉成人网| 国产精品成| 无人区码一码二码三码区| 国产超碰无码最新上传| 人妻熟女一二三区夜夜爱| 久久这里只精品热免费99| 97中文字幕在线观看| 国产精品中文一区二区| 亚洲婷婷综合色高清在线| 国产成人亚洲一区二区三区| 日韩成人无码影院| 午夜福利偷拍国语对白| 国产精品青草久久久久福利99| 精品国际久久久久999波多野| 18禁黄网站免费| 欧美精品亚洲精品日韩专区 | 亚洲精品日本久久一区二区三区| 色偷偷亚洲女人天堂观看| 亚洲精品一区二区毛豆| 久久久天堂国产精品女人| 久久精品人人槡人妻人人玩av| 国产av国片精品一区二区| 国产麻豆一精品一av一免费| 亚洲成在人天堂一区二区| 亚洲男女内射在线播放| 131mm少妇做爰视频| 免费十八禁一区二区三区| 亚洲av无一区二区三区| 动漫av纯肉无码av在线播放| 熟女人妻aⅴ一区二区三区电影| 人妻少妇久久中文字幕| 中文字幕乱码在线播放| 国产精品美女网站| 人人做人人妻人人精| 亚洲欧洲日产国无高清码图片| 免费看欧美全黄成人片| 久久综合伊人77777| 巴林右旗| 国产成人一区二区三区视频免费| 国产人妻精品午夜福利免费|