Bean的作用域

#作用域定义

限定程序中变量的可⽤范围叫做作⽤域,或者说在源代码中定义变量的某个区域就叫做作⽤域。 ⽽ Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式,⽐如 singleton 单例作⽤域,就 表示 Bean 在整个 Spring 中只有⼀份,它是全局共享的,那么当其他⼈修改了这个值之后,那么另⼀ 个⼈读取到的就是被修改的值。

#Bean的六种作用域

Spring 容器在初始化⼀个 Bean 的实例时,同时会指定该实例的作⽤域。Spring有 6 种作⽤域,最后 四种是基于 Spring MVC ⽣效的: 1. singleton:单例作⽤域 2. prototype:原型作⽤域(多例作⽤域) 3. request:请求作⽤域 4. session:会话作⽤域 5. application:全局作⽤域 6. websocket:HTTP WebSocket 作⽤域

1.Singleton

单例作用域是Spring中的默认作用域,该作用域下的Bean对象在IoC容器中只存在一个实例。

 

在上述代码中,我们使用getBean方法得到了两个对象user1和user2,但是他们输出的结果却是true,则可以说明此时我们获得的是同一个对象。

 

2.prototype

与单例模式不同,原型作用域也称多例作用域,在该作用域下的Bean请求都会重新创建新的实例。

 

此时我们使用 Scope注解使其成为原型作用域,可以看到此时打印的结果为false。

3.request

在该作用域下,每次http请求都会创建一个新的实例,也就是说在同一个http请求和响应下共用同一个实例。 该作用域只作用于SpringMVC。

4.session

同一个http请求的session共享一个bean,不同的session使用不同的bean。该作用域只在SpringMVC中使用。

5.application(了解)

在一个http请求的servlet context中定义了一个bean,限定一个bean的作用域是ServletContext的生命周期。该作用域只在SpringMVC中使用。

6.websocket(了解)

在⼀个http的WebSocket的⽣命周期中,定义⼀个Bean实例。该作用域只在SpringMVC中使用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值