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>
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>
相关文章推荐
- spring 装配bean(2)之SpEL表达式
- Java中list转换成json数组
- java使用JDBC连接数据库的几种方式
- spring-boot 加入拦截器Interceptor
- 抛弃ResultSet,拥抱Result吧!
- Struts2简介
- SpringMVC学习
- windows下在eclipse中使用svn插件
- java 让开发自动化: 用 Eclipse 插件提高代码质量
- eclipse hadoop ERROR [main] security.UserGroupInformation
- java数据类型
- 理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处(转)
- java 常用 Java 静态代码分析工具的分析与比较
- struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题
- Java中IO小结
- [JavaWeb基础] 009.Struts2 上传文件
- Activiti的Eclipse插件离线安装后,不显示,选项卡简单解决方法
- eclipse 无用代码扫描工具UCDetector
- JavaSE初学笔记之<多线程>
- Java中的内部类小结