专栏首页java一日一条详细介绍Spring 5的那些新特性与增强『文末送书』

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

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

问题背景

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

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

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

解决

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

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

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

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

本文分享自微信公众号 - java一日一条(mjx_java)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个以前没有注意的问题:java构造函数的执行顺序

    昨天在改一处代码时发现执行的过程和预想的不一样,仔细探究才发现是构造器执行顺序问题.(汗自己一下,基础不够扎实) 特地做了一些尝试然后把java构造器的执行顺...

    哲洛不闹
  • 一个以前没有注意的问题:java构造函数的执行顺序

    昨天在改一处代码时发现执行的过程和预想的不一样,仔细探究才发现是构造器执行顺序问题.(汗自己一下,基础不够扎实) 特地做了一些尝试然后把java构造器的执行顺...

    哲洛不闹
  • 一个以前没有注意的问题:java构造函数的执行顺序

    昨天在改一处代码时发现执行的过程和预想的不一样,仔细探究才发现是构造器执行顺序问题.(汗自己一下,基础不够扎实) 特地做了一些尝试然后把java构造器的执行顺...

    哲洛不闹
  • 逐行阅读Spring5.X源码(番外篇)BeanDefinition到底有多重要

    如果想系统的学习spring源码那么第一个需要搞明白的知识便是spring当中的BeanDefinition——spring bean的建模对...

    源码之路
  • 一图解决Google Backup备份出错问题

    你好我是森林
  • 【框架】121:spring框架之IOC容器

    在spring核心配置文件中,有一个bean标签,我们以前创建一个对象都是直接new。

    刘小爱
  • Spring框架结构

    spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可...

    聚沙成塔
  • spring boot 配置属性大全(2)

    gemron的空间
  • spring boot 配置属性大全(1)

    gemron的空间
  • Spring系列第1篇:请问各位大佬为何要学spring?

    整个spring系列使用官方最新版本5.2.3.RELEASE,会有大量案例,都是通过maven来管理的,所以maven是必备技能,对这块不熟悉的可以去看一下:...

    路人甲Java

扫码关注云+社区

领取腾讯云代金券