Java 是否有一种干净的方法可以使用@ConfigurationProperties从application.properties提取嵌套属性?
我希望从Java 是否有一种干净的方法可以使用@ConfigurationProperties从application.properties提取嵌套属性?,java,spring,spring-boot,properties,spring-properties,Java,Spring,Spring Boot,Properties,Spring Properties,我希望从@Value注释转移到使用@ConfigurationProperties主要是因为我最终拥有了太多的属性,所以在目标类中添加所有属性似乎会使类中的值注释变得混乱,如果我将它们标记为final,那么构造函数将有一个很长的属性列表参数 application.properties sms-gateway: sms: authorization: token: xyz username: abc password: pass url: http
@Value
注释转移到使用@ConfigurationProperties
主要是因为我最终拥有了太多的属性,所以在目标类中添加所有属性似乎会使类中的值注释变得混乱,如果我将它们标记为final,那么构造函数将有一个很长的属性列表参数
application.properties
sms-gateway:
sms:
authorization:
token: xyz
username: abc
password: pass
url: http://example.com
lynx:
cmd: lynx -dump -display_charset=utf-8 <%= @sms-gateway_sms_url %>
via:
cmd: true
admin:
status:
url: http://admin.example.com/status
另外,@ConfigurationProperties
允许您拥有一个将属性分组在一起的专用类。但是,您最终将它绑定到一个公共名称空间,以便属性与使用@ConfigurationProperties
注释的类的字段绑定
SmsConfig.java
。。。
@吸气剂
@所需参数构造函数
@配置
@配置属性(前缀=“sms网关.sms”)
公共类SmsConfig.java{
私有最终字符串用户名;
私有最终字符串密码;
私有最终字符串url;
...
}
但是,要添加其他嵌套属性,您需要为每个嵌套属性添加类以及@NestedConfigurationProperty
,以指示这是一个嵌套属性。如果存在许多嵌套属性,这可能再次有点失控
我的问题有两个方面-
私有最终字符串SmsGatewayUsername
,并希望将其绑定到username属性
映射