spring 裝配 Bean(1)

 beans命名空間並非惟一的Spring命名空間。Spring核心框架自帶了10個命名空間配置
 
  命名空間            用途
 1   aop       爲聲明切面以及將@AspectJ註解的類代理爲Spring切面提供了配置元素
    2   beans              支持聲明Bean和裝配Bean,是Spring最核心也是最原始的命名空間
 3   context            爲配置Spring應用上下文提供了配置元素,包括自動檢測和自動裝備Bean,注入非Spring直接管理的對象
 4   jee                提供了與java EE API的集成,例如JNDI和EJB
 5   jms                爲聲明消息驅動的POJO提供了配置元素
 6   lang               支持配置由GROOVY,JRuby或BeanShell等腳本實現的Bean
 7   mvc                啓用Spring MVC的能力,例如面向註解的控制器、視圖控制器和攔截器
 8   oxm                支持Spring的對象到XML映射配置
 9   tx                 提供聲明式事務配置
 10  util               提供各類各樣的工具類元素,包括把集合配置爲Bean、支持屬性佔位符元素
 
 java

 裝配Bean
 <bean id="duke" class="com.springinaction.springidol.Juggler"/>
 
 經過構造器注入
 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <constructor-arg value = "15"/>
 </bean>
 
 經過構造器注入對象應用
 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <constructor-arg value = "15"/>
  <constructor-arg ref="sonnet29"/>
 </bean> 
 
 經過工廠方法建立Bean
 <bean id="theStage" class="com.springinaction.springidol.Stage" factory-method="getInstance"/>
 
 注入簡單值
 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <protorype name="song" value="Jingle Bells"/>
  <protorype name="instrument" ref="saxophone"/>
 </bean> web

 使用Sping的命名空間p裝配屬性
 <bean id="duke" class="com.springinaction.springidol.Juggler"
   p:song = "Jingle Bells"
   p:instrument-ref = "saxophone"/>
 
 Spring的Bean做用域容許用戶配置所建立的Bean屬於哪種做用域,而無需在Bean的實現裏硬編碼做用域規則
 做用域              定義
 singleton          在每個Spring容器中,一個Bean定義只有一個對象實例
 protorype          容許Bean的定義能夠被實例化任意次(每次調用都建立一個實例)
 request            在http請求中,每一個Bean定義對應一個實例。該做用域僅在基於web的spring上下中才有效
 session            在httpsession中,每一個bean定義對應一個實例。改做用域僅在基於web的spring上下文才有效
 global-session     在一個全局httpsession中,每一個bean定義對應一個實例。該做用域僅在Portlet上下文中才有效
 
 java 自帶了多種集合類,Spring也提供了相應的集合配置元素
 集合元素                      用途
 <list>                       裝配list類型的值,容許重複
 <set>                        裝配set類型的值,不容許重複
 <map>                        裝配map類型的值,名稱和值能夠是任意類型
 <props>                      裝配proterites類型的值,名稱和值都必須是string值
 
 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <protorype name="song">
   <list>
    <ref bean="guitar"/>
    <ref bean="cymbal"/>
    <ref bean="harmonica"/>
   </list>
  </protorype>
 </bean> 
 
 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <protorype name="song">
   <set>
    <ref bean="guitar"/>
    <ref bean="cymbal"/>
    <ref bean="harmonica"/>
   </set>
  </protorype>
 </bean> spring

 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <protorype name="song">
   <map>
    <entry key="guitar" value-ref="guitar"/>
   </map>
  </protorype>
 </bean>  
 
 屬性                    用途
 key                    指定map中entry的鍵爲String
 key-ref                指定map中entry的鍵爲Spring上下文中的其餘bean的引用
    value                  指定map中entry的值爲String
    value-ref              指定map中entry的值爲Spring上下文中其餘Bean的引用session

     
 裝配proterties
 
 <bean id="duke" class="com.springinaction.springidol.Juggler">
  <protorype name="song">
   <props>
    <prop key="guitar">guitar</prop>
   </props>
  </protorype>
 </bean> mvc

 裝配空值
 <protorype name="somNonNullProperty"><null/></protorype>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 框架

相關文章
相關標籤/搜索