目录
Singleton(单例):默认的作用域
Prototype(原型)
Request(请求)
Session(会话)
Global Session(全局会话)
五大作用域范围对比
作用域设置
在Spring框架中,Bean的作用域指定了对象的生命周期和访问范围。Spring提供了五种Bean的作用域
-
Singleton(单例):默认的作用域
- 在整个应用程序中只创建一个Bean实例。
- 所有对该Bean的请求都将返回同一个实例。
- Bean是全局共享的,适用于无状态的Bean或者需要在多个组件之间共享数据的情况。
-
Prototype(原型)
- 每次对Bean的请求都会创建一个新的实例。
- 没有共享状态,适用于有状态的Bean或者需要频繁创建新实例的情况。
-
Request(请求)
- 在每个HTTP请求中创建一个新的Bean实例。
- 每个请求的Bean实例对于该请求是唯一的。
- 仅在Web应用程序的上下文中有效,适用于处理HTTP请求的控制器或服务。
-
Session(会话)
- 在每个用户会话(Session)中创建一个新的Bean实例。
- 对于同一用户的所有请求,都将使用相同的Bean实例。
- 仅在Web应用程序的上下文中有效,适用于保存用户特定的数据或状态。
-
Global Session(全局会话)
- 在整个应用程序的全局会话中创建一个新的Bean实例。
- 仅在基于Portlet的Web应用程序中有效,通常与Portlet会话一起使用。
五大作用域范围对比
作用域设置
可以通过Bean标签的scope属性设置
也可以通过@Scope注解