spring中Bean实例的作用域

Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。
Spring支持5种作用域,分别为singleton(单例)prototype(原型)requestsessionglobal session

1.singleton:单例模式
Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一个对象。
Singleton作用域是Spring中的缺省作用域,可以额显示的将Bean定义为singleton模式

<bean id="userDao" class="com.myioc.UserDaoImpl" scope="singleton"/>

2.prototype:原型模式
每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,而singleton全局只有一个对象
一般,对有状态的bean使用prototype作用域,对无状态的bean使用singleton作用域

3.request
在一次Http请求中,容器会返回该Bean的同一实例;而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效

<bean id="loginAction" class="com.mycnblogs.Login" scope="request"/>

针对每一次Http请求,Spring容器根据该bean的定义创建一个全新的实例,且该实例仅在当前Http请求内有效,而其它请求无法看到当前请求中状态的变化,当当前Http请求结束,该bean实例也将会被销毁

4.session
在一次Http Session中,容器会返回该Bean的同一实例;而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效

<bean id="userPreference" class="com.myioc.UserPreference" scope="session"/>

同Http请求相同,每一次session请求创建新的实例,而不同的实例之间不共享属性,且实例仅在自己的session请求内有效,请求结束,则实例将被销毁

5.global Session
在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效

参考:http://www.importnew.com/20736.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值