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