@TOC
学习方式
工作一直很忙,只能一点点学源码,但是这样很容易看一半就忘记前面的。因此我根据自己的需要,通过ProcessOn记录源码,通过画图完成源码的学习。
花费了近一个月,画了一些流程和自己的见解。持续更新中。。。
推荐大家使用:
https://www.processon.com/i/5eba6ac3e0b34d5f26032ede
下面截出一部分图供了解:
因为图片都比较大,无法截出来发出,因此在下面列出了对应的链接:
ioc-主流程
https://www.processon.com/view/link/5ed7c1ca0791297145ce2949
ioc全流程
https://www.processon.com/view/link/5ed90720e0b34d4139feade3
bean工厂后置处理器
https://www.processon.com/view/link/5eeb4e3207912929cb4d24d2
AnnotationConfigApplicationContext初始化refresh()&bean工厂后置处理器
https://www.processon.com/view/link/5eeaf87df346fb1ae56b84ed
构建bean细化流程-doCreateBean方法
https://www.processon.com/view/link/5ec6187f7d9c08156c5597aa
配置类的full与lite&@Configuration解析&涉及AOP代理模式的思考
https://www.processon.com/view/link/5eeba19b07912929cb4dab27
DataSourceTransactionManager为何不支持跨库的分布式事务
https://www.processon.com/view/link/5eea0d89e401fd1fd2985fc3
bean的生命周期&bean的循环依赖&ioc的九次后置处理器调用
https://www.processon.com/view/link/5ef624145653bb2925b6d128
mybatis如何交由spring管理
https://www.processon.com/view/link/5f203b98637689168e3ac83d
代理模式–>EnableAspectJAutoProxy源码解析–>项目日志切面
https://www.processon.com/view/link/5f2d523ce0b34d4554b45379
目前的疑问点:
源码中使用了大量的代理模式,工厂模式,单例模式等等,但是判断上还是使用的大量的if()else,为何没有使用策略模式来写一些接口实现判断的效果呢?