依赖注入重点学习路线
2021-09-13 11:52:55 91 举报
AI智能生成
登录查看完整内容
依赖注入的学习路线
作者其他创作
大纲/内容
1.尝试从缓存中获取Bean
1631521704(1).jpg
3.递归去父容器获取Bean实例
1631523763(1).jpg
4.从当前容器获取BeanDefinition实例
1631524265(1).jpg
5.递归实例化显式依赖的Bean
6.根据不同的Scope才能用不同的策略创建Bean实例
1631524951(1).jpg
7.对Bean进行类型检查
doGetBean
AbstractBeanFactory
1631580464(1).jpg
getSingleton
三级缓存
DefaultSingletonBeanRegistry
postProcessProperties
AutowiredAnnotationBeanPostProcessor
1631580833.jpg
Bean类型解析
1631580876(1).jpg
处理方法覆盖
1631581020(1).jpg
Bean实例化前的后置处理
createBean
创建Bean实例(工厂方法、含构造器注入,无参构造器注入)
记录下被@Autowired或者@Value标记上的方法和成员变量
是否允许提前暴露
填充Bean属性
(1)如果实现了Aware接口,则设值
(2)初始化前操作
(3)初始化
(4)初始化后操作
initializeBean
注册相关销毁逻辑
返回创建好的实例
1631581073(1).jpg
doCreateBean
applyMergedBeanDefinitionPostProcessors
postProcessAfterInstantiation:在设置属性前去修改Bean状态,也可以控制是否继续给Bean设置属性值
注入属性到PropertyValues中(按名字装配or按类型装配)
postProcessPropertyValues:对解析完但未设置的属性进行处理
是否进行依赖检测
将PropertyValues中的属性值设置到BeanWrapper中
populateBean
AbstractAutowireCapableBeanFactory
doResolveDependency
DefaultListableBeanFactory
InjectionPoint
容器对循环依赖类型的支持
重点学习路线
0 条评论
回复 删除
下一页