Spring2的Bean的作用域和装配类型
 
----Spring2升级学习笔记
 
一、作用域
 
1、singleton
在Spring IoC容器中仅存在一个Bean实例,Bean以单例的方式存在。
 
2、prototype
每次从容器调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()的操作。
 
3、request
每次HTTP请求都会创建一个新的Bean实例,该作用域仅适用于WebApplicationContext环境。
 
4、session
同一个HTTP Session共享一个Bean,不同HTTP Session使用不同的Bean。该作用域仅适用于WebApplicationContext环境。
 
5、globalSession
同一个全局Session共享一个Bean,一般用于Portlet应用环境。该作用域仅适用于WebApplicationContext环境。
 
 
二、装配类型
 
1、no
不使用自动装配。必须通过ref元素指定依赖,这是默认设置。由于显式指定协作者可以使配置更灵活、更清晰,因此对于较大的部署配置,推荐采用该设置。而且在某种程度上,它也是系统架构的一种文档形式。
 
2、byName
不使用自动装配。必须通过ref元素指定依赖,这是默认设置。由于显式指定协作者可以使配置更灵活、更清晰,因此对于较大的部署配置,推荐采用该设置。而且在某种程度上,它也是系统架构的一种文档形式。
 
3、byType
不使用自动装配。必须通过ref元素指定依赖,这是默认设置。由于显式指定协作者可以使配置更灵活、更清晰,因此对于较大的部署配置,推荐采用该设置。而且在某种程度上,它也是系统架构的一种文档形式。
 
4、constructor
与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。
 
5、autodetect
与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。
 
三、依赖检查
 
1、none
没有依赖检查,如果bean的属性没有值的话可以不用设置。
 
2、simple
对于原始类型及集合(除协作者外的一切东西)执行依赖检查。
 
3、object
仅对协作者执行依赖检查。
 
4、all
对协作者,原始类型及集合执行依赖检查。