## 一、背景 官方提供的spring boot starter的配置项,我们用IDE配置的时候一般都有自动提示的,如下图所示 ![](https://img.kancloud.cn/68/46/68465592eae33fda3355ca27305aa6b1_974x566.png) 而我们自己自定义的配置却没有,对开发非常不友好容易打错配置,**那这个是怎样实现的呢?** ## 二、提示原理 IDE是通过读取配置信息的元数据而实现自动提示的,而元数据在目录`META-INF`中的`spring-configuration-metadata.json`或者`additional-spring-configuration-metadata.json` ## 三、实现自动提示 以我这个自己开发的starter中的自定义配置文件为例,如果自己手动创建这些元数据的话工作量比较大,使用`IDEA`的话有自动生成功能 ![](https://img.kancloud.cn/51/e5/51e538a16485d28a6641ec1d944d7e00_450x542.png) ### 3.1. 引入依赖spring-boot-configuration-processor 在`pigframe-swagger2-spring-boot-starter`工程中添加以下jar包 gradle 4.5 以前的版本: ~~~ compileOnly group: 'org.springframework.boot', name: 'spring-boot-configuration-processor' ~~~ gradle 4.6 以上的版本: ~~~ annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor' ~~~ maven: ~~~ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> ~~~ 如果使用 additional-spring-configuration-metadata.json 配置文件单独设置了其他的配置提示,则还要设置 ~~~ compileJava.dependsOn(processResources) ~~~ ### 3.2. 修改IDEA配置 搜索`Annotation Processor`并设置`Enable annotation processing` ![](https://img.kancloud.cn/e9/06/e90619517ac4eeed0a5f2b7c5f785168_998x711.png) ### 3.3. 重新编译项目 项目在重新编译后就会在META-INF自动生成`spring-configuration-metadata.json`文件 ![](https://img.kancloud.cn/e1/02/e102bfe738ec71f78b17b1b87592e5de_215x32.png) ## 四、测试 自定义的swagger配置已经能自动提示了