您的位置:首页 > 编程语言 > Java开发

spring 装配 Bean(1)

2015-07-27 00:00 537 查看
摘要: spring in action 第二章

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、支持属性占位符元素

装配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>

使用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>

<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的引用

装配proterties

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

装配空值
<protorype name="somNonNullProperty"><null/></protorype>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: