@import注解详解
@Import注解主要用于导入某些特殊的Bean,这些特殊的Bean和Bean Definitaion 有关。主要用于导入@Configuration 类,ImportSelector和ImportBeanDefinitionRegistrar接口的实现类。
1.导入@Configuration 配置类
在Spring boot 中配置都一般都是自动导入的,所以我们不需要使用@Import,但是如果你自动扫包路径为:com.springboot.app,而你想导入的配置类在com.spring.config下 ,那么该配置类就需要使用@Import导入,尤其是第三方jar包的配置类都需要借助@Import来导入。
2.导入ImportSelector接口的实现类
@Import(Abc.class),如果Abc类实现了ImportSelector接口,spring容器就会实例化Abc类,并且调用其selectImports方法;
3.导入ImportBeanDefinitionRegistrar接口的实现类
@Import(Abc.class),如果Abc类实现了ImportBeanDefinitionRegistrar接口,spring容器就会实例化Abc类,并且调用其registerBeanDefinitions方法;