ComponentScan扫描组件流程图
2023-08-31 10:05:40   2  举报             
     
         
 Spring注解@ComponentScan扫描组件流程图
    作者其他创作
 大纲/内容
 invokeBeanFactoryPostProcessors()
  ConfigurationClassParserparse()
  AbstractApplicationContextrefresh()
  该方法主要是处理、解析配置类,根据解析判断不是配置类就会直接返回,不再做后续相关注解解析
    Spring启动
  ClassPathBeanDefinitionScannerdoScan()
  调用、执行所以已经注册在Spring容器中的bean工厂后置处理器的处理方法逻辑
  ConfigurationClassPostProcessor就是一个BeanFactoryPostProcessor后置处理器
      之前的流程是解@ComponentScan,获取到所有声明了@Component的组件beanDefinition信息,然后根据beanDefinition再次循环调用配置类解析方法,解析@Component,最后注入到Spring容器中
  解析核心所在之处
  Set<BeanDefinitionHolder> scannedBeanDefinitions
  ConfigurationClassPostProcessorpostProcessBeanDefinitionRegistry()
  这里根据扫描解析,获取到beanDefinition
  生成配置类解析器进行解析
  初始化一个ClassPathBeanDefinitionScanner扫描器,根据componentScan的属性,设置扫描器的属性
  processConfigBeanDefinitions()
  refresh()方法是Spring容器初始化、进行封装的核心入口
  doProcessConfigurationClass()
  遍历扫描包,调用findCandidateComponents方法根据基础包路径来找到候选的Bean
  ComponentScanAnnotationParserparse()
  粗体是类斜体是类的调用方法
  processMemberClasses()
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 