spring bean的作用域

在默认情况下,spring上下文创建bean都是以单例的模式进行创建的,如果需要指定bean的作用域时,可以有下面4中选择

1、单例(singleton)   : 在整个应用过程中,只会创建一个bean的实例

2、原型(Prototype) :  每次注入或通过spring上下文获取bean时,都会创建新的实例对象

3、会话(session) :      每次会话会创建唯一的bean实例

4、请求(request):       每次请求会创建唯一的bean实例

 

下面我们来指定bean的作用域

@Component
@Scope(value=ConfigurableBeanFactory.SCOPE_PROTOTYPE)//原型
@Scope(value=ConfigurableBeanFactory.SCOPE_SINGLETON)//单例
@Scope(value=WebApplicationContext.SCOPE_GLOBAL_SESSION,proxyMode=ScopedProxyMode.TARGET_CLASS)//会话
@Scope(value=WebApplicationContext.SCOPE_REQUEST,proxyMode=ScopedProxyMode.TARGET_CLASS)//请求
public class BeanActionScope {
	
}

此时,你可能注意到了,session、request和prototype、singleton相比,多了proxyMode属性,这个属性会为我们解决一些问题。

比如会面的一种场景:

一个会话bean需要被注入到一个单例bean中,此时会出现一个问题,可能此刻没用用户访问系统,那么会话bean并不存在。

proxyMode属性提供代理模式。解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值