Spring支持的几种bean的作用域

2 篇文章 0 订阅

Spring支持的几种bean的作用域

Spring容器中的bean可以分为5个范围

1.singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单列的模式由beanfactory自身来维护。

2.prototype:原行范围与单例范围相反,为每一个bean请求提供一个实例。

3.request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。

4.Seesion:与请求范围类似,确保每个Session中有一个bean的实例,在session过期后,bean会随之失效。

5.global-seesion:global-seesion和portlet应用相关。当你的应用部署在portlet容器中工作时,它包含很多portlet。
如果你要想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。全局作用域与Servlet中的session作用域效果相同。

Spring 中 bean 的加载过程:

  1. 获取配置文件资源;
  2. 对获取的 XML 资源进行一定的处理检验;
  3. 处理包装资源;
  4. 解析处理包装过后的资源;
  5. 加载提取 bean 并注册(添加到 beanDefinitionMap 中)。

Spring框架中的单例 Beans 是线程安全的么?

Spring 框架并没有对单例 bean 进行任何多线程的封装处理。关于单例 bean 的线程安全和并发问题需要开发者自行搞定。
但实际上,大部分的 Springbean 并没有可变的状态(比如Serview 类和 DAO 类),所以在某种程度上说 Spring 的单例 bean是线程安全的,如果你的bean 有多种状态的话(比如 ViewModel 对象),就需要自行保证线程安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值