Spring 工具类 ComponentScanAnnotationParser @ComponentScan注解处理器:扫描和注册组件bean

26 篇文章 3 订阅
17 篇文章 13 订阅

概述

ComponentScanAnnotationParserSpring的一个内部工具,它会基于某个类上的@ComponentScan注解属性分析指定包(package)以获取其中的bean定义。

所分析的包可以是多个包。

你可以简单地将ComponentScanAnnotationParser理解成注解@ComponentScan的处理器:

  • 输入 : @ComponentScan 注解信息
  • 处理 :
    • 执行ClassPathBeanDefinitionScanner 的扫描逻辑
      • 扫描输入信息所指定的各个包以发现bean定义
      • 注册扫描得到的每个bean定义到容器
  • 输出 : 输入信息所指定的包中所有的bean定义

它对注解@ComponentScan的处理在应用启动过程中配置类分析阶段进行。具体的可以参考ConfigurationClassParser#doProcessConfigurationClass

所分析的包(package)包括 :

  • 注解属性中属性basePackages所指定的包(package)
  • 注解属性中属性basePackageClasses指定的类所在的包(package)
  • 注解属性的注解类所在的包(package)
    • 仅在basePackages,basePackageClasses都为空时才生效

ComponentScanAnnotationParser 最终所使用的扫描器是ClassPathBeanDefinitionScanner

ComponentScanAnnotationParser 的分析流程其实是从注解属性中提取有关信息,将其设置到ClassPathBeanDefinitionScanner扫描器上,然后调用ClassPathBeanDefinitionScanner执行bean定义的扫描和到容器的注册。

ComponentScanAnnotationParser所在包:org.springframework.context.annotation

相关文章

Spring 工具类 ConfigurationClassParser 分析得到配置类
Spring 工具类 ClassPathBeanDefinitionScanner Bean定义扫描
Spring BeanDefinitionRegistryPostProcessor : ConfigurationClassPostProcessor

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值