平时我们在配置文件application.yml中写上我们所需的配置信息时,idea都会先给出友好的自动提示,方便我们快速操作,同时也能避免打错单词,如下:
这些提示都是内置的,在我们引入的jar包中是存在有这些配置相关文件的,就先简单看看spring.application.name的自动提示是来自哪个文件,如下:
可以发现spring.application.name属性被定义在了META-INF文件夹下的additional-spring-configuration-metadata.json文件中。
所以接下来模仿下这种做法,在我们自己项目的resources文件夹下先新建META-INF文件夹,然后新建一个spring-configuration-metadata.json文件(对的,只能命名成spring-configuration-metadata.json,而不能是additional-spring-configuration-metadata.json,不然不起效果)来自定义配置项,文件中自定义配置信息如下:
在pom.xml文件中加上如下依赖来为自定义的配置类生成元数据信息:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
然后打开配置文件application.yml,试着使用上面自定义的配置项,结果如下:
可以发现出现了自动提示的效果,同时配合上中文的描述,能够让开发更详细的了解到该配置项的作用。
总结
把一些自己项目特定所需的配置项维护在一个统一的spring-configuration-metadata.json文件里,不仅仅可以做到自定义配置自动提示,而且开发起来也更规范。