这几个注解全是@Component注解,它们的解析在ClassPathBeanDefinitionScanner.java
看其构造函数的初始化
这个是默认的扫描过滤filter,其中就有component.来看下过滤规则
如代码所以只要该类拥有Component的注解类就算通过.
下面来看下如何扫描的
这里大体描述下,具体的看代码实现.
1.首先package目录下所有文件,找到满足条件的类,就是满足上面几个过滤条件之一
2.找到后封装成AnnotatedBeanDefinition类
3.根据返回结果进行处理,最终注册到Bean Map中去
基本过程就是如此了.而对于spring boot来说,由于其context是AnnotationConfigWebApplicationContext类.所以在扫描是在这个类里面调用的,具体调用是在loadBeanDefinitions函数里面.如图
以上是本人的理解,如有错误敬请指出
@Service @Repository @Controller @Configuration注解类的首次加载
最新推荐文章于 2024-05-30 15:43:57 发布
本文深入解析Spring框架中组件扫描的过程,包括@Component注解的识别、类的筛选、AnnotatedBeanDefinition类的创建及Bean注册流程。特别关注SpringBoot环境下AnnotationConfigWebApplicationContext类的loadBeanDefinitions函数中的扫描实现。
969

被折叠的 条评论
为什么被折叠?



