面试官:简历上写了精通Spring,那你回答一下Spring为什么用“三级缓存”去解决循环依赖?

我:.......应该有三个缓存的map结构

面试官:具体回答一下

我:平时没认真深入过

面试官:公司的门在那里,自己走还是我送你?

很多开发者在开发 Spring 程序的时候,被动接受了已经做好的 Spring 特性案例。虽然这样减少了开发成本,但是也限制了自身的横向扩展能力。

Spring 框架几乎集成了一半 Java Web 开发的江山,只知道写,却不知道为什么这么写、不知道如何优化,是非常危险的。

作为一个轻量级的 Java 开发框架,Spring将面向接口的编程思想贯穿整个 Java 系统应用,所以在面试中一直是高频考察点。而Spring两大特性IOC和AOP,也是通过面试必须要掌握的知识点。

不过,在几次参与面试的过程中我发现了一个问题:很多Java程序员并没有彻底的理解IOC和AOP,只是仅限于IOC就是控制反转和AOP就是面向切面。

以Bean的生命周期为突破口,依赖注入过程中就可能会产生循环依赖的问题,而循环依赖很复杂。你知道为什么明明可以用“二级缓存”解决循环依赖,Spring一定要用“三级缓存”去解决呢?如果去掉其中某一级缓存会出现什么问题?如果一个单例bean和原型bean相互依赖会有问题吗?两个原型bean相互依赖会有问题吗...

于是发现,每天都在使用的Spring中还有很多的技术和问题是我们不知道的。如果对一个框架的理解只是停留在使用的熟练程度,那么别人随时有可能替代你。

为了让大家对Spring框架掌握得更加深入,以及要进入到实际项目的开发要用到的Mysql、Springboot、JVM等等技术。

所以这个涵盖几大主流技术进阶的训练营值得一听,限时0元入群领取听课名额。