关键知识点:
@Import
是一个类级别的注解,用于导入配置类或者需要被Spring容器管理的实例,这个注解的作用:使用@import导入的类都会被加载到ioc容器中。
SpringBoot自动装配,就是默认使用ImportSelector的方式加载META-INF/spring.factories中指定的配置类。
@Import提供4中用法:
-
导入Bean
-
导入配置类
-
导入 ImportSelector 实现类。一般用于加载配置文件中的类
-
导入 ImportBeanDefinitionRegistrar 实现类。
使用此注解的好处:
- 导入指定的Bean或配置类。例如:由于业务需要将包路径或者需要加载的Bean类不在@ComponentScan的扫描范围内,这时候我们就可以通过@Import来实现Bean的注入。
- ImportSelector方式是制定需要加载类的全限类名。这时候我们就可以将我们的需要装载的类写到配置文件中,比如某个txt中,然后项目启动的时候读取txt中的全限类名,实现Bean的装载。SpringBoot就是使用这种方式实现的自动装配。()
具体原理图:
相关知识点补充: