7.1 题目

Spring Bean 的作用域之间有什么区别

7.2 bean 的作用域

在 Spring 中,可以在 元素的 scope 属性里设置 bean 的作用域,以决定这个 bean 是单实例的还是多实例的。
默认情况下,Spring 只为每个在 IOC 容器里声明的 bean 创建唯一一个实例,整个 lOC 容器范围内都能共享该实例:所有后续的 getBean() 调用和 bean 引用都将返回这个唯一的 bean 实例。该作用域被称为 singleton,它是所有 bean 的默认作用域。

类别 说明
singleton 在 SpringlOC 容器中仅存在一个 Bean 实例,Bean 以单实例的方式存在
prototype 每次调用 getBean() 时都会返回一个新的实例
request 每次 HTTP 请求都会创建一个新的 Bean ,该作用域仅适用于 WebApplicationContext 环境
session 同一个 HTTP Session 共享一个 Bean ,不同的 HTTP Session 使用不同的 Bean。该作用域仅适用于 WebApplicationContext 环境