2018-07-06(Spring Bean的作用域)

Spring Bean的作用域,就是配置文件中的“scope”。

在面向对象程序设计中,一般是指对象或变量之间的可见范围。而在Spring容器中则是指其创建的Bean对象相对于其他Bean对象的请求可见范围。

在Spring容器中,一共提供了五种作用域类型:

1、singleton:Spring IoC容器只会创建该Bean定义的唯一实例,单例模式。在Spring IoC 容器中只会存在一个共享的Bean实例,而且所有对于Bean的请求,只要Id与该Bean定义相匹配,则只会返回Bean的同一省。Bean以单实例方式存在。

2018-07-06(Spring Bean的作用域)_第1张图片

2、prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例【对于有状态的Bean,应该使用prototype;对于无状态的Bean,应该使用singleton】

2018-07-06(Spring Bean的作用域)_第2张图片

3、request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效。

4、session:对于每次HTTP Session,使用session定义的Bean豆浆产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效。

5、globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效。


配置文件示例:

2018-07-06(Spring Bean的作用域)_第3张图片

在使用第3、4、5种作用域时,需要在web容器中进行一些而外的配置,因为这三种是与web应用环境相关的:

2018-07-06(Spring Bean的作用域)_第4张图片

你可能感兴趣的:(2018-07-06(Spring Bean的作用域))