Spring.factories

Spring 在启动加载 bean 的时候会加载所有 jar 包中的 /resources/META-INF/spring.factories 文件中配置的 bean。
所以我们在提供给别人工具包的时候可以在 spring.factories 文件中定义一些 bean 自动加载到使用方的 Spring 容器中。
spring.factories 中一般都是一些配置 bean,也就是使用了 @Configuration 这个注解的 bean,在这个配置 bean 中初始化一些我们的工具包需要的 bean 就比较方便了。

src/main/resources/META-INF下新建 spring.factories 文件
类似这种的配置:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.wacai.gbl.config.LinkupSmsAutoConfiguration

一些常用的注解

@Configuration

开启配置

@EnableConfigurationProperties(xxxProperties.class,xxxProperties.class)

读取哪些配置文件
xxxProperties.class 使用 @ConfigurationProperties(prefix = "xxx") 读取配置文件中前缀相同的配置

@Bean

与下面的配置配合使用

@ConditionalOnExpression("${} || ${}")

可以配置多个条件,满足条件的就会初始化 bean

@ConditionalOnProperty(value = "xx.xx.xx",havingValue = "",matchIfMissing = false)

读取配置文件中的 xx.xx.xx,havingValue 的值与配置文件中的值相等则会初始化

@Primary

默认,首选的。


2021/12/20 posted in  Spring Java