在 Spring 中,Bean 的作用域指的是 Bean 实例的生命周期和可见范围。

Spring 中的 Bean 作用域主要有以下几种:

1.singleton

singleton 是 Spring 中默认的 Bean 作用域,它表示在整个应用程序中只存在一个 Bean 实例。每次请求该 Bean 时,都会返回同一个实例。

2.prototype

prototype 表示每次请求该 Bean 时都会创建一个新的实例。每个实例都有自己的属性值和状态,因此它们之间是相互独立的。

3.request

request 表示在一次 HTTP 请求中只存在一个 Bean 实例。在同一个请求中,多次请求该 Bean 时都会返回同一个实例。不同的请求之间,该 Bean 的实例是相互独立的。

4.session

session 表示在一个 HTTP Session 中只存在一个 Bean 实例。在同一个 Session 中,多次请求该 Bean 时都会返回同一个实例。不同的 Session 之间,该 Bean 的实例是相互独立的。

5.application

application 表示在一个 ServletContext 中只存在一个 Bean 实例。该作用域只在 Spring ApplicationContext 上下文中有效。

6.websocket

websocket 表示在一个 WebSocket 中只存在一个 Bean 实例。该作用域只在 Spring ApplicationContext 上下文中有效。

参考文档

Spring 官方文档:https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/core.html#beans-factory-scopesopen in new window

特殊说明

以上内容来自我的《Java 面试突击训练营》,这门课程是有着十几年工作经验(前 360 开发工程师),10 年面试官经验的我,花费 4 年时间打磨完成的一门视频面试课。学完训练营的课程之后,基本可以应对目前市面上绝大部分公司的面试了,并且课程配备了 9 大就业服务,帮助上千人找到 Java 工作,其中上百人拿到大厂 Offer,学员最高薪资 70W 年薪,面试课目录和 9 大服务如下:

加我微信咨询:vipStone【备注:训练营】