Spring Boot 3.3.0:如何基于Map键为配置项提供动态IDE提示?
基于Spring Boot Map键的动态配置提示与校验需求
环境说明
- 所有内容已在Spring Boot 3.3.0中完成测试验证
配置类定义
import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.Map; @ConfigurationProperties(prefix = "app") public record AppProperties(Map<String, MapConfig> map, UseConfig config) { record MapConfig(String value1, String value2) {} record UseConfig(String use) {} }
YAML配置示例
app: map: <-- 这是一个Map<String, Object>类型,键为用户自定义字符串(无法通过枚举约束) key1: ... key2: ... config: use: key1 <-- 需要引用`app.map`中的某个键
核心需求
- 让IDE对
app.config.use提供自动提示,候选值为app.map中已定义的所有键(如[key1, key2]) - 当
app.config.use输入key3这类app.map中不存在的键时,IDE自动标记为配置错误
已尝试方案
- 查阅
spring-boot-configuration-metadata项目中与Map相关的测试代码 - 参考Spring Boot官方配置元数据格式文档
- 尝试手动配置提示,但现有value provider(如any、class-reference等)均不支持基于Map键的动态提示
期望的配置元数据格式
参考Spring Boot官方值提示文档中Map类型属性可通过.keys/.values后缀配置键/值提示的说明,期望通过以下元数据实现需求:
{ "name": "app.config.use", "providers": [ { "name": "property-source", "parameters": { "property": "app.map.keys" } } ] }
现寻求可行解决方案,实现基于Map键的动态配置提示与校验。
内容来源于Stack Exchange,提问作者C. Alexis
相关产品推荐
相关产品推荐

