详细介绍Spring 5的那些新特性与增强『文末送书』

Spring支持不同的scope。不同scope在使用上是有差异的,比如singleton与prototype。

问题背景

我们知道,Spring bean 默认的 scope 是 singleton(单例),但有些场景(比如多线程)需要每次调用都生成一个实例,此时 scope 就应该设为 prototype。如:

640?wx_fmt=png

但是,如果 singlton bean 依赖 prototype bean ,通过依赖注入方式, prototype bean 在 singlton bean 实例化时会创建一次(只一次),比如:

640?wx_fmt=png

我希望调度“Lily” 和 “Lucy” 两个线程,实际上,它只给我初始化一个实例(这样就线程非安全了)。

解决

如果 singlton bean 想每次都去创建一个新的 prototype bean 的实例, 需要通过方法注入的方式。可以通过实现 ApplicationContextAware 接口,来获取到 ApplicationContext 实例,继而通过getBean 方法来获取到 prototypebean 的实例。我们的程序需要修改如下:

640?wx_fmt=png

OK ,问题解决

源码:https://github.com/waylau/spring-framework-4-demos 中 beanScope 目录

以上文章均摘自北京大学出版社出版社出版的新书《spring5 开发大全》,作者柳伟卫。关于spring的教程图书,在市面上一直有“spring三剑客在手,天下无忧”之说,指的就是本书以及《spring boot 企业级应用开发实战》《spring cloud微服务架构开发实战》。

一、spring技术的“百科全书”,京东购买链接:https://item.jd.com/12474404.html#crumb-wrap

640?wx_fmt=png

二、一本书吃透“企业级spring开发”,京东链接:https://item.jd.com/12340304.html

640?wx_fmt=png

三、一本书见微知著,从细节攻破“spring重难点”,京东链接:https://item.jd.com/12382428.html#crumb-wrap

640?wx_fmt=png

规则:送这三本书籍,看评论点赞数量前三名,名次高的先挑哦,时间截止到1月9日中午12点,加油

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值