前言
Java作为最全面的语言,国内开发者也是最多的,Java综合起来各方面都不错,在大部分场景下是一种稳健的技术选择。加上近年来安卓的推动,目前也是最流行的一种语言。
现在Java的就业市场看起来还是挺大的,而且工资也是比较可观的,**但我为什么说是看起来呢?**其实,最主要的原因还是市场决定的,每年涌入市场的Java开发人员应该是最多的,但是市场上Java初级开发人员早已经饱和了,也就造成了就业市场较大的假象。如果初级程序员一直不提升技术,那么注定要被淘汰。
那么要如何才能系统的学习Java语言,从一名初中级开发人员成长到一名高级开发甚至是架构师呢?下面请听我娓娓道来!(tips:以下包含的一些学习笔记,都是由各路大牛以及我自己整理的,各位可以好好食用!)
二、什么是循环依赖
循环依赖直白点就是发生在两个类,你引用我,我引用你
的状态,如图:
![](https://upload-images.jianshu.io/upload_images/24195
点击领取2024完整开源项目《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
226-3550233330ca6ab9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
三、如果不依赖于Spring自己解决循环依赖如何解决
以上图为例,假设,我们能够创建完成AService
之后,放置到到一个缓存中,再去注入属性!每次注入属性的时候,所需要的属性值都从缓存中获取一遍,缓存中没有再去创建不就解决了?如图所示:
总结一下上面的流程:
AService
创建完成后将自己加入到二级缓存,然后开始注入属性- 发现
AService
依赖BService
于是先查询一级缓存是否有数据一级缓存没有就查询二级缓存,有就返回,没有就创建BService
- 缓存中没有,开始实例化
BService
,然后注入内部属性! - 注入内部属性时发现依赖
AService
,于是先查询一级缓存是否有数据一级缓存没有就查询二级缓存,有就返回,没有就创建,很显然,二级缓存是有数据的。于是从二级缓存取出AService
注入到BService
。 BService
创建完成后将自己从二级缓存挪到一级缓存,并返回。AService
获取到BService
后,注入到自己的属性中并把自己从二级缓存挪的一级缓存,返回AService
!- 至此,循环依赖创建完成!
那么有了上面的思路,我们如何用代码实现一遍我们的逻辑呢?
结语
小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。
我们选择的这个行业就一直要持续的学习,又很吃青春饭。
虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。
送给每一位想学习Java小伙伴,用来提升自己。
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!
1709810233579)]
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!