Spring进阶之路(4)-容器中Bean作用域与集合类型配置

Spring容器中Bean的作用域


当Spring容器创建一个Bean实例的时候,不仅可以完成Bean实例的实例化,而且会指定他的作用域。Spring支持以下几种作用域。

1. singleton:单例模式。Spring的容器中只生产一个这样的实例,调用的时候,从Spring的容器中取出即可。

2. prototype:相当于多例,每次获取Bean的时候都会创建一个新的对象的实例。

3. request:对于一次Http请求的话,request作用域的Bean将只生产一个实例,不同的Http请求产生的实例是不同的。

4. session:对于一次Http请求,Session作用域的Bean只产生一个。

5. global session :每个全局的Http Session对应一个Bean实例。



集合类型的属性如何配置


一般的在开发的时候通常情况下会选择使用自动扫描机制加注解的方式,以下的例子可以了解下怎么配置即可。

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. package com.siti.spring20160229;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5. import java.util.Properties;  
  6. import java.util.Set;  
  7.   
  8. public class Person {  
  9.     private List<String> addresses;  
  10.     private Map scores;  
  11.     private Map<String, WangYang> people;  
  12.     private Properties health;  
  13.     private Set wangyangs;  
  14.     private String[] books;  
  15.     public List<String> getAddresses() {  
  16.         return addresses;  
  17.     }  
  18.     public void setAddresses(List<String> addresses) {  
  19.         this.addresses = addresses;  
  20.     }  
  21.     public Map getScores() {  
  22.         return scores;  
  23.     }  
  24.     public void setScores(Map scores) {  
  25.         this.scores = scores;  
  26.     }  
  27.     public Map<String, WangYang> getPeople() {  
  28.         return people;  
  29.     }  
  30.     public void setPeople(Map<String, WangYang> people) {  
  31.         this.people = people;  
  32.     }  
  33.     public Properties getHealth() {  
  34.         return health;  
  35.     }  
  36.     public void setHealth(Properties health) {  
  37.         this.health = health;  
  38.     }  
  39.     public Set getWangyangs() {  
  40.         return wangyangs;  
  41.     }  
  42.     public void setWangyangs(Set wangyangs) {  
  43.         this.wangyangs = wangyangs;  
  44.     }  
  45.     public String[] getBooks() {  
  46.         return books;  
  47.     }  
  48.     public void setBooks(String[] books) {  
  49.         this.books = books;  
  50.     }  
  51.       
  52.       
  53. }  

下面是配置文件,注意一下,各个集合类型的数据是怎么配置的。


[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xsi:schemaLocation="  
  5. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">  
  6.   
  7. <!-- bean definitions here -->  
  8.     <bean id = "wy" class="com.siti.spring20160229.WangYang"></bean>  
  9.     <bean id = "yy" class="com.siti.spring20160229.Wy"></bean>  
  10.     <bean id = "person" class = "com.siti.spring20160229.Person">  
  11.         <!-- 针对 private List<String> addresses; -->  
  12.         <property name="addresses">  
  13.             <list>  
  14.                 <value>上海</value>  
  15.                 <value>北京</value>  
  16.                 <value>山东</value>  
  17.             </list>  
  18.         </property>  
  19.           
  20.         <!-- 对于private Map scores; -->  
  21.         <property name="scores">  
  22.             <map>  
  23.                 <entry key = "数学" value = "80"></entry>  
  24.                 <entry key = "英语" value = "80"></entry>  
  25.                 <entry key = "语文" value = "80"></entry>  
  26.             </map>  
  27.         </property>  
  28.           
  29.         <!-- 对于Map<String, WangYang> people; -->  
  30.         <property name="people">  
  31.             <map>  
  32.                 <entry key="wy" value-ref="wy"></entry>  
  33.                 <entry key="yy" value-ref="yy"></entry>  
  34.             </map>  
  35.         </property>  
  36.           
  37.         <!-- 对于Properties health; -->  
  38.         <property name="health">  
  39.             <props>  
  40.                 <prop key="视力">5.0</prop>  
  41.                 <prop key="体重">65.0</prop>  
  42.             </props>  
  43.         </property>  
  44.           
  45.           
  46.         <!-- 对于private Set wangyangs; -->  
  47.         <property name="wangyangs">  
  48.             <set>  
  49.                 <!-- set集合中的数据 -->  
  50.                 <value>wy</value>  
  51.                 <value>wy</value>  
  52.                 <value>wy</value>  
  53.             </set>  
  54.         </property>  
  55.           
  56.         <!-- String[] books -->  
  57.         <property name="books">  
  58.             <list>  
  59.                 <value>java</value>  
  60.                 <value>c</value>  
  61.                 <value>php</value>  
  62.             </list>  
  63.         </property>  
  64.           
  65.     </bean>  
  66. </beans>  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值