要使自定义 spring boot starter 在 intellij idea 中支持配置项自动提示和代码补全,需创建并配置 additional-spring-configuration-metadata.json 文件,确保 name 与 @configurationproperties 的 prefix 和字段名严格匹配,并启用 idea 的 spring boot 配置提示支持,同时正确设置 @configurationproperties 类的可访问性与类型。

让自定义 Spring Boot Starter 在 IntelliJ IDEA 中像官方 starter 一样支持配置项自动提示和代码补全,是提升协作开发体验的关键一步。没有这步,下游开发者只能靠文档或源码猜 property 名,极易拼错、漏配、类型写反。
生成 configuration metadata 文件
第一步:在 src/main/resources/META-INF/ 目录下新建 additional-spring-configuration-metadata.json 文件。若目录不存在,请手动创建完整路径——IDE 不会自动补全这个路径,漏建会导致整个提示失效。
第二步:填入标准 JSON 结构,必须包含 properties 数组,每个 property 至少声明 name、type 和 description 字段。例如:
{"properties":[{"name":"boot.custom.port","type":"java.lang.Integer","description":"服务监听端口"},{"name":"boot.custom.name","type":"java.lang.String","description":"服务实例名称"}]}
注意:【name 字段必须与 @ConfigurationProperties 的 prefix + 小驼峰属性名完全一致】,比如 prefix = "boot.custom",字段叫 serverPort,那 name 就得是 boot.custom.serverPort,不能写成 boot.custom.port 或 boot.custom.server-port——IDE 只认精确匹配。
启用 IDEA 的 Spring Boot 配置提示支持
打开 Settings → Languages & Frameworks → Spring Boot → Configuration File → 勾选 “Enable configuration properties support”。这一步不点,metadata 文件就是纯文本。
重启项目或刷新 Maven 依赖后,application.yml 或 application.properties 中输入 boot.custom.,IDEA 就会实时弹出 port 和 name 两个提示项,并显示对应 description。
让 @ConfigurationProperties 类本身获得补全支持
方法一:确保模块已正确识别为 Spring Boot 模块。右键项目 → “Add Framework Support…” → 勾选 Spring Boot。否则 @ConfigurationProperties 注解不会被解析,字段无法参与补全上下文。
方法二:在 @ConfigurationProperties 类上添加 @ConstructorBinding(适用于不可变配置),或确保所有 setter 方法存在且 public。IDEA 补全依赖于可访问的 getter/setter,private 字段+无 setter 会导致补全列表为空。
方法三:在 CustomProperties 类中,将 port 字段类型从 Integer 改为 int。IDEA 对基本类型字段的补全响应更稳定,包装类型偶尔因 null 安全检查中断推断链。
验证补全是否生效
1. 打开任意 application.yml 文件,在根层级下输入:boot:
2. 按 Ctrl+Space 触发补全 → 出现 custom: 提示项
3. 输入 custom: 后再按 Ctrl+Space → 应列出 name 和 port,并附带 description 文本
4. 光标停留在 port: 后,输入数字再按 Ctrl+Space → 不应出现任何建议(说明类型校验生效);若弹出 String 相关方法,则 type 字段写错了。











