目录
1. Bean的作用域定义
Bean的作用域指的是Bean在Spring整个框架中的某种行为模式,例如说singleton作用域,表示的就是Bean在整个Spring中只有一份,在一个人对他进行修改之后,其他人进行读取的值也是修改后的值。
2. Bean的作用域分类
Spring一共有六种作用域,其中的最后四种是基于Spring MVC生效的
1. singleton:单例作用域
2. prototype:原型作用域(多例作用域)
3. request:请求作用域
4. session:回话作用域
5. application: 全局作用域
6. websocket: HTTP WebSocket作用域
3. 六种作用域的效果以及使用场景
3.1 singleton
Singleton是Spring默认选择的作用域
该作用域下的Bean在IOC容器中只存在一个实例,使用场景通常在于Bean对象的属性状态不需要进行更新的时候。
3.2 prototype
prototype即每次对该作用域下的Bean请求都会创建新的实例,即我们获取Bean或者装配Bean的时候,都会创建一个新的对象实例
场景:在Bean对象的属性状态常需要更新的时候。
3.3 request
request即每次http请求的时候都会创建新的Bean实例,类似于prototype,一般会应用于一次http请求和响应的共享Bean
3.4 session
session一般是在一次http session中,定义一个Bean实例,一般应用于用户回话的共享Bean,比如记录一个用户的登陆信息时
3.5 application
application即在一个http servlet Context中,定义一个Bean实例,应用场景一般为Web应用的上下文信息,例如记录一个应用的共享信息
3.6 websocket
websocket指的是在一个HTTP WebSocket的生命周期中,定义一个Bean实例;应用在WebSocket的会话中,保存了一个Map结构的头信息,将用来包裹客户端信息头。