这是一个很有意思的知乎问题,也是日常开发中比较少见的场景。能感觉出来,题主对 JDK 动态代理和 Cglib 动态代理的理解比较透彻,提出这个问题肯定有过自己的思考。本文比较长,我会从动态代理的实现机制出发,过渡到测试案例的设计,随后分析调试效果来完整的回答这个问题。 1. 动态代理的实现机制 我们
先下结论:不能。 究其原因,简单地说,基于构造方法的循环依赖,总会要在对象被实例化时获取被依赖的对象,那么这个时候 @Lazy 注解的标注相当于失效了。 换个稍微生动一点的说法,假设Spring是大管家,现在有A和B两个Bean,本来你用 @Lazy 注解是为了让标注的B创建的晚一点,结果到了A要依
近日小伙伴给我推了一个知乎的问题,问题就一句话:Spring中的单实例Bean是线程安全的吗?这一下子就提起了我的论述之心。本着要讲就讲透的原则,这篇文章就来详细论述一下该问题。 原问题的题主的顾虑点在 Bean 的延迟加载,实际上单纯论 Bean 的线程安全问题而言,安全不安全取决于管理和使用该
回忆作用域的概念 作用域这个概念我们从一门编程语言的学习开始就会接触到,以我们熟悉的 Java 为例,一个类中通常会包含一些成员变量、方法变量、局部变量,下面的代码片段中就是非常经典的作用域区分案例。对于基础扎实的读者而言,代码片段中的问题不难回答,四个问题中可访问的成员作用域级别依次提升,这也说明
前段时间在翻底稿的时候找到了一个之前跟小册交流群的群友讨论的话题,感觉这个主题还不错,所以本篇文章,我们就来研究一下本文标题所述的这个话题:SpringFramework 如何在运行期动态注册新的数据源? 需求来源 这个需求的起源是来自一个 SpringBoot 自动装配的数据源注册,因为一个项目中
近期我在 SpringBoot 的小册交流群里碰见一个问题,感觉蛮有意思的,拿出来跟小伙伴们分享一下。 原问题 那位小伙伴的项目中,有一部分 Service 的注解事务一直不起作用,但也只是一部分起作用,也有一部分是好的。而且更奇怪的是,如果他把一个事务不起作用的 ServiceImpl 代码完整的
这是 Spring 面试题系列的第二篇,本文的主题:Spring 中涉及到的设计模式,如何在面试中回答的尽可能全面、准确、有深度。 本篇只回答一个问题:
一直以来,SpringFramework 作为 Java 企业级开发的老大哥,面试中也常被问到。虽说有些基础性的问题可能不那么特别被面试官和求职者重视,但如果真的问起来,能不能回答的准确、全面、有深度,还是很容易体现出水平的。 在接下来的一个系列中,我会慢慢盘点一些 Spring 中常见但不好回答全