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