文章目录
1 区别
1.1org.springframework.boot.autoconfigure.AutoConfiguration.imports
AutoConfiguration.imports
不是一个接口或类,而是一个文件,它位于 spring-boot-autoconfigure
的 META-INF/spring
目录下。这个文件包含了所有自动配置类的全类名列表。Spring Boot
在启动时,通过 @EnableAutoConfiguration
注解加载 AutoConfigurationImportSelector
类,该类进一步读取 AutoConfiguration.imports
文件中的全类名,并根据一定规则过滤掉不符合条件的类,然后将剩余的类名集合返回给 IOC
容器,并将这些组件注册为 bean
。这种方式使得 Spring Boot
能够自动配置大量的组件,而无需用户手动配置。
1.2 org.springframework.context.ApplicationContextInitializer
ApplicationContextInitializer
是一个接口,它用于在 Spring
容器刷新之前执行一些初始化工作。通常,这个接口的实现类被用来向 Spring Boot
容器中注入一些属性,或者执行一些在容器创建早期就需要完成的任务,如激活配置文件、设置运行环境属性等。ApplicationContextInitializer
的实现类可以通过多种方式注册到 Spring
容器中,包括在 spring.factories
文件中配置、在资源目录下新建 META-INF/spring.factories
文件、或者在启动类中直接添加。