概述
ImportBeanDefinitionRegistrar
接口主要用来注册beanDefinition,然后实例化为bean,最后注册到Spring容器中。很多三方框架集成Spring 的时候,都会通过该接口,实现扫描指定的类,然后注册到spring 容器中。
比如 Mybatis 中的Mapper接口,springCloud中的 FeignClient 接口,都是通过该接口实现的自定义注册逻辑(MyBatis对应的是MapperScannerRegistrar)。
接口
1 |
|
原理
注册所有的ImportBeanDefinitionRegistrar
实现类
ConfigurationClassParser.collectImports()
ConfigurationClassParser.processImports()
执行所有的ImportBeanDefinitionRegistrar
的逻辑
ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass()