作用域限定了 Spring Bean 的作用范围,在 Spring 配置文件定义 Bean 时,通过声明 scope 配置项,可以灵活定义 Bean 的作用范围。 scope 配置项有 5 个属性,用于描述不同的作用域。
① singleton:使用该属性定义 Bean 时,IOC 容器仅创建一个 Bean 实例,IOC 容器每 次返回的是同一个 Bean 实例。
② prototype:使用该属性定义 Bean 时,IOC 容器可以创建多个 Bean 实例,每次返回 的都是一个新的实例。
③ request:该属性仅对 HTTP 请求产生作用,使用该属性定义 Bean 时,每次 HTTP 请 求都会创建一个新的 Bean,适用于 WebApplicationContext 环境。
④ session:该属性仅用于 HTTP Session,同一个 Session 共享一个 Bean 实例。不同 Session 使用不同的实例。
⑤ global-session:该属性仅用于 HTTP Session,同 session 作用域不同的是,所有 的 Session 共享一个 Bean 实例