Spring 支持五种作用域,分别是 singleton、prototype、request、session 和 global session。
作用域 | 说明 |
singleton | (默认作用域)单例模式,每个 Spring IoC 容器只会实例化一个使用 singleton 定义的 Bean。 |
prototype | 原型模式, |
request | 对于每次 HTTP 请求,使用 request 定义的 Bean 都产生一个新实例只有在 Web 应用中使用 Spring 时,该作用域才有效。 |
session | 对于每次 HTTP 会话,使用 session 定义的 Bean 都产生一个新实例。只有在 Web 应用中使用 Spring 时,该作用域才有效。 |
global session | 只有在 Web 应用中使用 Spring 时,该作用域才有效。 |
singleton 作用域
默认情况下,Spring IoC 容器启动后,在初始化过程中,会以单例模式创建并配置所有使用 singleton 定义的 Bean 的实例。对于每个配置的 Bean,整个 Spring 容器共享唯一的实例。容器会负责跟踪 Bean 实例的状态和维护 Bean 实例的生命周期行为。每次通过容器获取 singleton 定义的 Bean 时,容器返回的都是同一个实例。
prototype 作用域
Spring IoC 容器的初始化过程中,不会创建使用 prototype 定义的 Bean 的实例。容器不会负责跟踪 Bean 实例的状态,也不会负责维护 Bean 实例的生命周期行为。每次通过容器获取 prototype 定义的 Bean 的实例时,容器都会创建一个新的实例返回。
时间: 2024-11-10 08:04:39