@Service @Repository @Controller @Configuration注解类的首次加载

本文深入解析Spring框架中组件扫描的过程,包括@Component注解的识别、类的筛选、AnnotatedBeanDefinition类的创建及Bean注册流程。特别关注SpringBoot环境下AnnotationConfigWebApplicationContext类的loadBeanDefinitions函数中的扫描实现。

这几个注解全是@Component注解,它们的解析在ClassPathBeanDefinitionScanner.java
看其构造函数的初始化在这里插入图片描述在这里插入图片描述这个是默认的扫描过滤filter,其中就有component.来看下过滤规则在这里插入图片描述如代码所以只要该类拥有Component的注解类就算通过.
下面来看下如何扫描的在这里插入图片描述这里大体描述下,具体的看代码实现.
1.首先package目录下所有文件,找到满足条件的类,就是满足上面几个过滤条件之一
2.找到后封装成AnnotatedBeanDefinition类
3.根据返回结果进行处理,最终注册到Bean Map中去
基本过程就是如此了.而对于spring boot来说,由于其context是AnnotationConfigWebApplicationContext类.所以在扫描是在这个类里面调用的,具体调用是在loadBeanDefinitions函数里面.如图在这里插入图片描述以上是本人的理解,如有错误敬请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bruk_spp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值