SpringBoot项目中配置文件是必不可少的,随着配置的大量增加,如果将所有的配置都放在框架自带的application.properties文件中,就会导致该过度臃肿且分类不够明确,为解决这一问题,我们常常需要自定义配置文件,此时就会带来一个问题,那就是自定配置文件无法被框架所识别(如果被识别,配置文件会带有一个小绿色的叶子),框架无法识别也就是导致输入配置时,没有相应的提示。
1、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
配置spring-boot-maven-plugin以防止repackage目标将依赖项添加到 jar 中:
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
2、添加配置文件my-config.yml
jwt:
algorithm: HS256
expires: 2
并创建一个对应的类:
创建这个类不是必须,我这里只是想说明,自己写的配置类,也可以被提示,并不仅仅只提示spring框架的配置。
@Data
@Configuration
@ConfigurationProperties(prefix = "jwt", ignoreUnknownFields = true)
@PropertySource("classpath:my-config.yml")
public class JWTConfig {
/** 加密方式 */
String algorithm;
/** 过期时间,单位分钟 */
long expires;
}
重新clean项目,在\target\classes\META-INF
目录会生成spring-configuration-metadata.json
。里面存储的是我们自定义的配置文件的提示信息。
3、让自定义的配置文件被框架管理
4、验证效果
自定义的配置 和 spring框架的配置都能提示