Spring的Import,ComponentScan,ImportResource原理

org.springframework.context.annotation.ConfigurationClassPostProcessor(Bean定义的后置处理器)中,轮询BeanDefinitionRegistry中注册的所有已注册的类,找出包含Import,ComponentScan,ImportResource注解的类。
 

@Import原理

     如果@Import注解有包括属性org.springframework.context.annotation.ImportBeanDefinitionRegistrar实现类。则执行ImportBeanDefinitionRegistrar的registerBeanDefinitions方法,
把自定义的类定义(org.springframework.beans.factory.config.BeanDefinitionHolder)注入org.springframework.beans.factory.support.BeanDefinitionRegistry中。
Spring中常用的把包路径下的类注册入BeanDefinitionRegistry的工具类为:org.springframework.context.annotation.ClassPathBeanDefinitionScanner。
ImportBeanDefinitionRegistrar接口实现类常用于注册自定义的类定义到Spring的BeanDefinitionRegistry中。
 

posted on 2021-06-16 14:34  swave  阅读(230)  评论(0编辑  收藏  举报

导航