spring Bean作用域

1.spring上下文管理的bean默认都是单例的(全局范围),也就是说一个bean无论被注入对少次,注入的实例都是一样的。这样操作效率很高,但是会有安全问题。

2.spring提供自定义作用域,bean的四大作用域为:

1)单例(application),整个应用上下文中只创建一个实例。然后到处注入。

2)原型(prototype),每次获取(注入)bean,spring都会创建一个新的bean。每次都是新的对象实例

3)会话(session),为每个会话创建单独的bean。当bean被注入和获取时。不同会话之前的bean是不一样的,不会互相影响。

4)请求(request),spring会为不同请求创建不同的bean,不同请求获取到的bean是不一样的。

3.如何定义bean的作用范围

通过@Scope注解可以定义bean的作用范围(通常是和其他组件注解一起使用),如:

定义原型和单例(默认)的作用域:

@Component

@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)--原型域,每次获取bean都是获取到的新实例。

定义会话和请求的作用域

1.会话作用域(可以在定义购物车中得到应用):

@Scope(WebApplicationContext.SCOPE_SESSION)

2.请求作用域

@Scope(WebApplicationContext.SCOPE_REQUEST)

 

非单例模式的bean注入到单例模式的bean中,都是注入的代理类,不然会出现问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值