bean的作用域_Java核心知识 Spring原理八 Spring Bean 作用域

7c7dac76530ded63b0d3ffd60bc703f5.png

Spring 3 中为 Bean 定义了 5 中作用域,分别为 singleton(单例)、prototype(原型)、

request、session 和 global session,5 种作用域说明如下:

singleton:单例模式(多线程下不安全)

1. singleton:单例模式,Spring IoC 容器中只会存在一个共享的 Bean 实例,无论有多少个

Bean 引用它,始终指向同一对象。该模式在多线程下是不安全的。Singleton 作用域是

Spring 中的缺省作用域,也可以显示的将 Bean 定义为 singleton 模式,配置为:

prototype:原型模式每次使用时创建

2. prototype:原型模式,每次通过 Spring 容器获取 prototype 定义的 bean 时,容器都将创建

一个新的 Bean 实例,每个 Bean 实例都有自己的属性和状态,而 singleton 全局只有一个对

象。根据经验,对有状态的bean使用prototype作用域,而对无状态的bean使用singleton

作用域。

Request:一次 request 一个实例

3. request:在一次 Http 请求中,容器会返回该 Bean 的同一实例。而对不同的 Http 请求则会

产生新的 Bean,而且该 bean 仅在当前 Http Request 内有效,当前 Http 请求结束,该 bean

实例也将会被销毁。

session

4. session:在一次 Http Session 中,容器会返回该 Bean 的同一实例。而对不同的 Session 请

求则会创建新的实例,该 bean 实例仅在当前 Session 内有效。同 Http 请求相同,每一次

session 请求创建新的实例,而不同的实例之间不共享属性,且实例仅在自己的 session 请求

内有效,请求结束,则实例将被销毁。

global Session

5. global Session:在一个全局的 Http Session 中,容器会返回该 Bean 的同一个实例,仅在

使用 portlet context 时有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值