Spring @NestedConfigurationProperty使用确认及配置前缀修改方法
Spring Boot配置属性相关问题解答
示例代码
@ConfigurationProperties public class Config { @NestedConfigurationProperty Foo foo; }
疑问1:若Foo类并非Config的内部类,是否必须使用@NestedConfigurationProperty注解?
不是必须的。@NestedConfigurationProperty注解主要是给IDE提供配置元数据支持,让IDE能识别这是嵌套属性,编写配置文件时给出对应提示。实际运行时,只要Foo类符合JavaBean规范(有对应的getter/setter方法),就算它不是Config的内部类,不加这个注解也能正常解析嵌套配置。
疑问2:如何将配置前缀从foo改为bar?
有两种简单实现方式:
- 直接修改字段名:把Config类里的
foo字段改成bar,配置文件即可用bar.prop1=xxx来配置,Spring Boot会自动将字段名作为嵌套属性前缀。修改后代码如下:@ConfigurationProperties public class Config { Foo bar; } - 用@JsonProperty注解映射:如果不想改字段名,可在
foo字段上添加@JsonProperty("bar")注解,指定配置文件中对应的前缀为bar。代码示例:@ConfigurationProperties public class Config { @JsonProperty("bar") Foo foo; }
内容的提问来源于stack exchange,提问作者morpheus
相关产品推荐
相关产品推荐

