默认情况下,excludeFilters 将会是个空集,而 includeFilters 集合中增加一个包含@Component 类型信息的 AnnotationTypeFilter 实例,以及另外两个包含 Java EE 注解AnnotationTypeFilter 实例。
跳到 AnnotationTypeFilter#match 方法中。AnnotationTypeFilter 类图如下。
AnnotationTypeFilter#match 方法在抽象类 AbstractTypeHierarchyTraversingFilter中实现。
match 方法首先调用了 matchSelf,而该方法最终由 AnnotationTypeFilter 重写。
可以看到这里最终使用 AnnotationMetadata 方法判断是否存在指定注解。
源码分析就到此为止,下篇文章将会深入 AnnotationMetadata,查看其实如何获取元数据的。
帮助文档Spring Annotation Programming Model
『Spring Boot 编程思想』