ImportBeanDefinitionRegistrar接口

@MapperScan(basePackages = {"com.cnmyhr.ecch.contract.mapper","com.cnmyhr.ecch.event.core.mapper"}) 》
@Import({MapperScannerRegistrar.class})》
public class MapperScannerRegistrar implements ImportBeanDefinitionRegistrar, ResourceLoaderAware {》

》》》
public interface ImportBeanDefinitionRegistrar {
default void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) {
this.registerBeanDefinitions(importingClassMetadata, registry);
}

default void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
}
}
重要的是第二个参数
BeanDefinitionRegistry registry
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
String name = DependsOnDatabaseInitializationPostProcessor.class.getName();
if (!registry.containsBeanDefinition(name)) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(DependsOnDatabaseInitializationPostProcessor.class);
registry.registerBeanDefinition(name, builder.getBeanDefinition());
}

}
posted @ 2024-10-12 11:13  人在代码在  阅读(13)  评论(0)    收藏  举报