bean 的作用域有哪些?

69 阅读1分钟

当使用 Spring 容器管理 bean 时,可以指定 bean 的作用域,常见的作用域有:

  1. singleton 唯一 bean 实例,Spring 默认的作用域,适用于单例设计模式。
  2. prototype 每次请求都会创建一个新的 bean 实例,适用于需要频繁创建新对象的场景。
  3. request 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
  4. session 每一次来自新 session 的 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。
  5. application 在整个 Web 应用的生命周期中,只创建一个 bean 实例,存放在 ServletContext 中,对整个应用都有效。
  6. websocket 在 WebSocket 生命周期内创建一个 bean 实例,存放在 WebSocket 会话中,只对当前 WebSocket 会话有效。
  7. global session 在整个全局 HTTP Session 生命周期中,只创建一个 bean 实例,存放在全局 HTTP Session 中,对整个应用中的所有用户都有效。