(五)Spring框架——Bean的作用域

定义bean的时候可以选择性的声明bean的作用域。Spring支持以下五种作用域,其中的三个只有在使用web-aware 应用上下文的时候才能被使用:
singleton:这个作用域指的是在每个Spring IoC容器中以单例的方式创建bean,这也是创建bean的默认方式;
prototype:这个作用域指的是定义任意多个对象实例;
request:这个作用域指的是一个HTTP请求期间,这个只在Spring的web应用上下文中有效;
session:该作用域指的是一个HTTP会话(session)期间,这个只在Spring的web应用上下文中有效;
global-session:这个作用域指的是一个全局的HTTP会话(session)期间,这个只在Spring的web应用上下文中有效。

单例作用域(The singleton scope):
如果作用域被定义成单例,则Spring IoC容器实际上只会创建一个由该bean定义的对象实例。这个单一的实例被存储在一个类似单例beans的缓存中,所有随后对此的请求都会返回这个缓存中的对象。Spring bean的默认作用域都是单例的。如果你想创建一个指定为单例的bean,你可以在配置文件中指定该bean的作用域属性为singleton,如下:
<!-- A bean definition with singleton scope -->
<bean id="..." class="..." scope="singleton">
    <!-- collaborators and configuration for this bean go here -->
</bean>

原型作用域(The prototype scope):
如果作用域被定义为prototype,则Spring IoC容器会在每次请求指定bean的时候都生成一个新的对象实例。原则上讲所有的全状态的bean定义为prototype,把所有无状态的bean定义为singleton。例子如下:
<!-- A bean definition with singleton scope -->
<bean id="..." class="..." scope="prototype">
   <!-- collaborators and configuration for this bean go here -->
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值