【spring源码 4.3.7】MergedBeanDefinitionPostProcessor和@Autowired,@Value的关系

相关文章:
Spring源码系列之容器启动流程 建议先阅读这篇文章

系列文章:
【spring源码】01.Spring源码整体脉络介绍及源码编译–spring笔记
【spring源码】02.Ioc容器加载过程-Bean的生命周期源码深度剖析–spring笔记
【spring源码】Spring IoC源码学习:invokeBeanFactoryPostProcessors 详解
【spring源码 4.3.7】Spring IoC源码学习:registerBeanPostProcessors() 详解
【spring源码 4.3.7】Spring IoC源码学习:finishBeanFactoryInitialization() 详解
【spring源码 4.3.7】Spring IoC源码学习:BeanFactory.getBean() 详解
【spring源码 4.3.7】Spring IoC源码学习:AbstractAutowireCapableBeanFactory.populateBean()
【spring源码 4.3.7】Spring 如何解决循环依赖的问题、三级缓存
【spring源码 4.3.7】Spring IoC源码学习:AbstractAutowireCapableBeanFactory.initializeBean() 初始化生命周期

【spring源码 4.3.7】MergedBeanDefinitionPostProcessor和@Autowired,@Value的关系

概述

AutowiredAnnotationBeanPostProcessor是一个内置的处理器类,负责解析@Autowired和@Value。该类继承了MergedBeanDefinitionPostProcessor接口。

这样,就可以通过寻找MergedBeanDefinitionPostProcessor接口的全部子类(用户可以自定义处理器类,只要实现这个接口即可),实现注解标签的解析。这里的解析只是给bean的定义增加属性,例如依赖一个其他bean B,而B的真正实例化是在populateBean()中进行的。

详情

在这里插入图片描述

热爱spring源码的同学应该知道MergedBeanDefinitionPostProcessor这个接口,这个接口对@Autowired和@Value的支持起到了至关重要的作用。当某个bean在实例化的时候就会调到所有的实现了MergedBeanDefinitionPostProcessor接口的实例。其中就有一个非常关键的类:AutowiredAnnotationBeanPostProcessor

1、首先了解一下MergedBeanDefinitionPostProcessor接口实例调用的地方
在这里插入图片描述
这个地方就是 MergedBeanDefinitionPostProcessor接口调用的入口,里面会对所有实现了MergedBeanDefinitionPostProcessor接口的bean(一般是spring内置的后置处理器,用户很少需要自己实现)进行调用,代码如下:
在这里插入图片描述
其中解析扫描类里面的@Autowired和@Value注解的就是AutowiredAnnotationBeanPostProcessor
在这里插入图片描述

参考

MergedBeanDefinitionPostProcessor和@Autowired,@Value的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值