一、我也曾后悔过踏入程序员这一职业
相信大家考上大学时应该都有面临过选专业这一道难题吧,我同样没有避免,但是我还是算比较果断的,因为我从初中开始就对计算机感兴趣,然后就很佛的报了计算机专业,大学时,我对这个专业还是一直抱有很大的希望的。
直到毕业工作三年了,发现现在的工作只有加不完的班,敲不完的代码,增删改查,完全失去了灵魂,和我当初的初心完全是相反的,再三考虑后我辞职去面试了一直向往的企业“阿里”,但无奈一面就被刷了下来,那段时间,我真的自闭到后悔自己踏入这个行业。
二、Spring生命周期的大胆猜测
这里分享一个阅读源码的小技巧:捉大放小,连蒙带猜!
8字真言,我们在阅读源码过程中,因为你要知道,每一个被开源出来的优秀框架,其源码的体系都是极其庞大复杂的,我们不能面面俱到,所以在看源码过程中一定不能被细枝末节缠住,一定要先理清楚整个框架的一个大致思想和大致的框架体系,再去搞那些细枝末节,其效率会好很多,其次在看源码过程中,我们一定要大胆的去想,去猜测,如果这个功能让你自己去写,你会怎么实现!
我们今天学习SpringBean的生命周期也是按照这个8字真言去学习,通过我们之前所学,Spring大致有以下的功能:
- 他会帮我们自动的创建对象然后保存起来!
- 他会帮我们完成属性的填充!
- 如果我们设置了Aop的功能,他会帮我们自动的代理,实现切面功能!
我们从平常的使用中,至少可以得知以上的三点,如果让你自己去实现,必会如何实现呢?
- 首先他既然能够帮我们自己创建对象,那么他肯定是通过反射来创建的,通过反射来创建,就必定绕不过去要使用Class对象创建,那么我们如何获取Class对象呢? 去扫描项目,将指定的包下的加了注解的类文件切割获取Class名称,通过反射加载Class名称,反射创建java对象!
- 我们要完成属性的填充,为了方便和性能方面,我肯定会把这些创建好的对象保存起来,无疑
Map
容器是最合适的! - 我们在创建一个对