在 Spring 配置中,我们可以通过 scope 属性来定义 Spring Bean 的作用域,可以接受
5 个内建的值,分别代表 5 种作用域类型,下面给大家详细总结一下:
1、singleton,用来定义一个 Bean 为单例,也就是说在 Spring loC 容器中仅有唯一
的一个实例对象,Spring 中的 Bean 默认都是单例的。它的作用域范围是
ApplicationContext 容器
2、prototype,用来定义一个 Bean 为多例,也就是说在每次请求获取 Bean 的时都会
重新创建实例,因此每次获取到的实例对象都是不同的。它的作用域范围是调用
getBean 方法直至获取对象。
3、request,用来定义一个作用范围仅在 request 中的 Bean,也就是说在每次 HTTP
请求时会创建一个实例,该实例仅在当前 Request 中有效。它的作用域范围是每次发
起 HTTP 请求直至拿到响应结果。
4、session,用来定义一个作用范围仅在 session 中的 Bean,也就是说在每次 HTTP
请求时会创建—个实例,该实例仅在当前 HTTP Session 中有效。它的作用域范围是浏
览器首次访问至浏览器关闭。
5、globalSession,用来定义一个作用范围仅在中的 Bean。这种方式仅用于
应用环境,也就是说该实例仅存在于 WebApplicationContext 环境中。它的作用域范
围是整个 WebApplicationContext 容器。