参考:blog.csdn.net/feeltouch/article/details/90109348
- 依赖springboot配置管理类
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- 设置idea:利用idea生成spring-configuration-metadata.json文件
在idea中, Ctrl + Alt + S 快捷键打开Settings,搜索Annotation Processors,接下来勾住Enable annonation processing保存 - 自定义配置类
重点:必须要有@ConfigurationProperties("xxx") 该注解,否则在编译时不会生成spring-configuration-metadata.json文件。
参考如下:
@Data
@Configuration
@ConfigurationProperties("sky")
public class SkyProperties {
@Value("${sky.access-token:}")
private String accessToken;
@Value("${sky.business-id: }")
private List<String> businessId;
private SkyProperties.File file;
@Data
public static class File{
private String root;
}
}
注意:多层级属性,需要用内部类表示。如:如果application中是sky.file.root: "xxx",那么在配置类中表示 SkyProperties类中有个内部类File,File类有个属性root。
参考 springboot redis依赖中的RedisProperties类。
-
重新编译项目。
clean -> compile
如果有其他模块依赖,可能需要install而不是compile。
重新编译后,在target/classes/META-INF下会生成spring-configuration-metadata.json文件。文件内容就是表明自定义配置类中各属性关联关系。
有了这个文件,application中才会提示自定义属性 -
在配置文件application中配置属性
此时在application中输入sky后会自定提示自定义配置类中前缀"sky"的相关属性
网友评论