Spring bean的作用域,4年小Java的心路历程

@Bean

@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

public Demo demo(){

return new Demo();

}

复制代码

若是使用XML来配置bean,我们可以使用<bean>元素的scope属性,配置bean的作用域

复制代码

我列举的这几个例子都是声明的prototype(原型)作用域,每次注入或从Spring应用上下文检索该bean时,都会创建新的实例,这样我们每次操作都会得到我们自己的bean实例。


会话作用域和请求作用域

===========

以上我们介绍了,单例与原型作用域的声明。但是在有的场景我们使用前两种作用域,并不合适。例如,在Web应用中实现购物车。

若是使用单例作用域,我们每次往购物车添加商品都是往一个购物车添加,这并不合理。若是使用原型,我们每次添加商品都会创建一个购物车,下次获取购物车也不是同一个,也不合理。按照购物车bean来说,会话作用域是最适合的,为每个用户会话创建一个购物车。

声明会话作用域bean


指定会话作用域bean,我们也是使用@Scope注解。除了给@Scope注解配置value属性,我们还配置了 proxyMode 属性(代理模式),ScopedProxyMode.INTERFACES表示基于接口的动态代理模式(jdk)。配置 proxyMode(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值