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>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 框架

相关文章
相关标签/搜索