Spring中Bean的作用域

在Spring框架中,Bean的作用域(Scope)定义了Bean的生命周期和在Spring容器中的可见性。Spring支持多种Bean作用域,主要包括以下几种:

  1. Singleton(单例)

    • 默认作用域。
    • 在Spring容器初始化时创建一个Bean的唯一实例,并在整个容器的生命周期中共享该实例。
    • 每次请求都会返回同一个对象。
  2. Prototype(原型)

    • 每次请求都会创建一个新的Bean实例。
    • 容器不会对Prototype作用域的Bean进行管理,即在使用完后不会自动销毁该Bean,需自行管理其生命周期。
  3. Request(请求)

    • 仅在基于Web的应用程序中使用。
    • 每个HTTP请求都会创建一个新的Bean实例,该实例仅在当前HTTP请求内有效。
    • 请求结束后,Bean会被销毁。
  4. Session(会话)

    • 仅在基于Web的应用程序中使用。
    • 每个HTTP会话创建一个新的Bean实例,该实例在该会话内有效。
    • 当会话结束时,Bean被销毁。
  5. Global Session(全局会话)

    • 仅在基于Portlet的Web应用程序中使用。
    • 在全局HTTP会话中创建一个Bean实例,适用于多个Portlet的共享。
  6. Application(应用)

    • 与Singleton作用域相似,但作用域是更广泛的。
    • 容器在整个上下文中只会创建一个实例,适用于在整个应用程序中共享的Bean。
  7. Websocket(WebSocket)

    • 仅在WebSocket的应用中使用。
    • 每个WebSocket连接创建一个新的Bean实例,该实例在当前WebSocket会话内有效。
相关推荐
蓝田~1 分钟前
大模型本地部署与远程调用 — 从 API 到 Agent
java·人工智能·claude·claude code
码农进化录8 分钟前
Java 程序员的 AI 进化论 | Spring Boot 接入 OpenAI 的六个坑,全帮你踩了
java·spring boot·openai
她说彩礼65万11 分钟前
Asp.net core 模型绑定
后端·asp.net
用户342323237631715 分钟前
BLE 传感器节点实战
后端
疯狂成瘾者17 分钟前
Java 常见集合方法
java·windows·python
从此以后自律18 分钟前
ConcurrentHashMap 超详细详解
java
fliter22 分钟前
Go 1.26 新增 `bytes.Buffer.Peek`:只看数据,不移动读取位置
后端
羑悻29 分钟前
我受够了 Coding Agent 的“假聪明,真串行”,于是做了 Meta-Orchestrator!
后端
神奇小汤圆29 分钟前
字节二面挂了!被问“订单超时自动取消”
后端
饼干哥哥33 分钟前
每晚300+个爆款疯狂跑,0人值守TikTok工厂开张!!
后端·操作系统·产品