SpringBoot 扩展机制 ——Spring.factories文件 如何将外部项目加入Spring容器
▶ 简介
简单说用于模块之间解耦,外部项目下各种配置、类加入到Spring容器中进行管理,类似JAVA中SPI机制。机制自行百度。
▶ 方式
将外部类引入IOC容器两种方式
1.@import
2.加入Spring.factories文件 — 主讲这个
▶ Spring.factories文件
1.在resource目录下 META-INF/ Spring.factories 文件
2.格式:自定义需要扫描到类(接口),多个用 ”,\“ 隔开
3.SpringFactoriesLoader类会去扫描加载文件下定义类,加入容器
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mostsnails.common.base.utils.config.WebLogAutoConfiguration,\
com.mostsnails.common.base.utils.config.RedisAutoConfiguration,\
com.mostsnails.common.base.utils.test.TestClass
注意这里使用EnableAutoConfiguration ,SpringBoot启动类@SpringBootApplication注解包下有@EnableAutoConfiguration和@Component 具体作用开启自动装备,将满足条件@Configuration配置加入到SpringBoot中。
Spring.factories也可以包含其他类型
# Initializers
org.springframework.context.ApplicationContextInitializer=\
org.springframework.boot.autoconfigure.SharedMetadataReaderFactoryContextInitializer,\
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener
# Application Listeners
org.springframework.context.ApplicationListener=\
org.springframework.boot.autoconfigure.BackgroundPreinitializer
....