Spring Boot应用中配置项过多时,无疑会增加维护成本,对于自定义的配置项,若是缺少必要的文档说明,则更是令人不快,如果可以提示呢,不就轻松多了吗?
参考连接
- SpringBoot 配置提示功能
- SpringBoot自定义配置自动提示
- Configuration Metadata
- SpringBoot > properties 在 IDEA 中提示失效问题解决
- Springboot应用系列—外部化配置之@ConfigurationProperties最佳实践
- JSR303校验注解的使用 和 自定义校验注解
添加依赖和编写配置类
为模块添加spring-boot-configuration-processor依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>1.5.16.RELEASE</version>
</dependency>
<!-- 版本请根据情况调整 -->
开启IDEA配置:

image-20210928190651292.png
编写配置类(各属性对应properties中的项):
@Component
@ConfigurationProperties(prefix = "my.mq.config") //配置项前缀,各个属性以此为前缀
// @ConfigurationProperties(prefix = "my.mq.config.") //错误示例:注意不要在最后面多写了个【点】
public class MyMqConfig {
/**
* mq地址
*/
private String host = "10.20.47.206";
/**
* mq端口
*/
private String port = "5672";
/**
* mq用户名
*/
private String username = "rabbit";
/**
* mq密码
*/
private String password = "123456";
//getter & setter 省略
}
编译打包此模块,并确认生成jar文件的META-INF目录下包含此配置对应的json文件,properties属性与配置类属性对应:

image-20210928191716182.png
项目中添加包含此配置的maven依赖
请自行操作
在application.properties中提示配置项
通常IDEA会默认把
application.properties文件当作Spring配置,文件前会有一个【叶子】图标,在输入时会自动提示,如下图

image-20210928192237374.png
在非application.properties中提示配置项
对于文件名称不是
application.properties的配置文件,需要手动将该文件设置为Spring配置文件

image-20210928192954297.png
- 打开Project Structure
- 选择Modules
- 选择配置文件所在的模块,并单击Spring(未识别为Spring模块的请自行配置)
- 选择自动义Spring Boot配置
- 添加配置文件
- 选中文件(上图为
my.mq.properties)并点击确定使其生效

image-20210928193331392.png
配置完成后,my.mq.properties前面会多出【叶子】图标,即可了,如上图所示

image-20210928193428811.png
// 使用实例
@Autowired
private MyMqConfig myMqConfig;
public void test() {
System.err.println(myMqConfig.getHost());
// 若配置文件中重新设置了值,则打印此值,否则输出默认值
}
瞧啊,这就人性化多了吧!
其他
多有疏漏,还请指正!