当使用 Spring 容器管理 bean 时,可以指定 bean 的作用域,常见的作用域有:
singleton: 唯一 bean 实例,Spring 默认的作用域,适用于单例设计模式。prototype: 每次请求都会创建一个新的 bean 实例,适用于需要频繁创建新对象的场景。request: 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。session: 每一次来自新 session 的 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。application: 在整个 Web 应用的生命周期中,只创建一个 bean 实例,存放在 ServletContext 中,对整个应用都有效。websocket: 在 WebSocket 生命周期内创建一个 bean 实例,存放在 WebSocket 会话中,只对当前 WebSocket 会话有效。global session: 在整个全局 HTTP Session 生命周期中,只创建一个 bean 实例,存放在全局 HTTP Session 中,对整个应用中的所有用户都有效。