You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Lombok将含多圆点与连字符的Spring配置映射到Java对象?

解决Spring配置项含多圆点与连字符的映射问题

针对log.import-data.dir = d:\import这类带连字符和多层级的配置,有以下几种可行的映射方案:

方案1:利用@ConfigurationProperties的prefix与驼峰命名规则

Spring配置绑定会自动将连字符分隔的配置名转换为驼峰式字段名,结合prefix指定配置前缀,就能完成映射:

@Data
@ConfigurationProperties(prefix = "log")
public class ApplicationBean {
    private ImportData importData = new ImportData();
    
    @Data
    public class ImportData {
        private String dir;
    }
}

这里log.import-data.dir中的import-data对应内部类的字段importData(驼峰格式),dir直接匹配字段名。

方案2:为字段显式指定配置键

如果不想修改字段名,可通过注解明确指定配置键:

@Data
@ConfigurationProperties(prefix = "log")
public class ApplicationBean {
    @JsonProperty("import-data")
    private ImportData importData = new ImportData();
    
    @Data
    public class ImportData {
        private String dir;
    }
}

也可以拆分配置层级,单独给内部类指定前缀:

@Data
@ConfigurationProperties(prefix = "log.import-data")
public class ImportDataBean {
    private String dir;
}

之后在主配置类中注入该Bean即可。

方案3:结合@Value注解(适合简单配置)

如果只是单个独立配置项,直接用@Value注解获取更简洁:

@Component
@Data
public class ApplicationBean {
    @Value("${log.import-data.dir}")
    private String importDataDir;
}

注意事项

  • 确保Spring Boot启动类添加@EnableConfigurationProperties(ApplicationBean.class),或给配置类加上@Component注解,让Spring能扫描到该Bean。
  • Windows路径需注意转义,建议写成d:\\import或d:/import避免转义字符冲突。

内容的提问来源于stack exchange,提问作者Mohammad Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:45:55