今天自己手写了一部分spring的功能,发现挺好玩的, 一些经常用到的注解通过自己手写的类实现,不用引入Spring的依赖包, 就能实现一些基本bean的创建,@scope 是单例还是原型(多例), @Autowired 注解,@CompontentScan扫描包路径, @BeanProcessor 这个功能挺强大的, 可以让在你的bean 初始化前做一些事情, 或是 spring bean 初始化后做一些事情, 话说 aop 就是通过这个实现 BeanProcessor 接口来实现的。还有就是 InitializingBean 接口, afterPropertiesSet() 是在哪里调用的,反正用处多多哈哈。spring bean初始化后调用的。
很多时候,看了一些源码, 自己手写一遍就是不一样。
我把写好的一部分放到了 gitee 上, 有兴趣的可以去看一看。
https://gitee.com/msetget/mysxspring.git
像很多时候,我们可能会看很多源码,但没有总结,也是白搭, 因为过了一段时间就会忘记,我觉得动手最关键,最好把流程图画一下。
看源码方法:
1、先使用:先看官方文档快速掌握框架的基本使用
2、抓主线:找一个demo入手,顺藤摸瓜快速静态看一遍框架的主线源码,画出源码主流程图,切勿一开始就陷入源码的细枝末节,否则会把自己绕晕,凭经验猜
3、画图做笔记:总结框架的一些核心功能点,从这些功能点入手深入到源码的细节,边看源码边画源码走向图,并对关键源码的理解做笔记,把源码里的闪光点都记录下来,后续借鉴到工作项目中,理解能力强的可以直接看静态源码,也可以边看源码边debug源码执行过程,观察一些关键变量的值
4、整合总结:所有功能点的源码都分析完后,回到主流程图再梳理一遍,争取把自己画的所有图都在脑袋里做一个整合