SpringBoot-2.1.13注解,@NestedConfigurationProperty的用处
@Configuration
@ConfigurationProperties(prefix = "urm")
public class SysRouteConfiguration {
@NestedConfigurationProperty
private List<SysRouteConfig> sysRouteConfig;
public List<SysRouteConfig> getSysRouteConfig() {
return sysRouteConfig;
}
public void setSysRouteConfig(List<SysRouteConfig> sysRouteConfig) {
this.sysRouteConfig = sysRouteConfig;
}
}
public class SysRouteConfig implements Serializable {
//系统编号 唯一
private String sysCode;
//系统名称
private String sysName;
//esb配置对应的DM配置
private String sysEsbNo;
//系统在集中交易和融资融券配置的系统编码号
private String sysMainNo;
//对应ESB dp的地址
private String sysEsbUrl;
//是否默认系统 0 是 1非
//所有的系统只能有一个默认
private String isDefault = "1";
//备注
private String memo;
}
application.yml
urm:
sysRouteConfig[0]:
sysCode: dm2
sysName: xxx
sysEsbNo: dm2
sysEsbUrl: http://xxx.xxx.xxx.xxx:8880/xxx
sysMainNo: 66
isDefault: 0
sysRouteConfig[1]:
sysCode: dm1
sysName: xxx
sysEsbNo: dm1
sysEsbUrl: http://xxx.xxx.xxx.xxx:8880/xxx
sysMainNo: 68
isDefault: 1
sysRouteConfig[2]:
sysCode: dm3
sysName: xxx
sysEsbNo: dm3
sysEsbUrl: http://xxx.xxx.xxx.xxx:8880/xxx
sysMainNo: 67
isDefault: 1
查了一圈资料,大概理解为,当配置类的数据结构比较复杂时,比如说一层嵌套一层,或者有List,Map这种结构的,需要使用@NestedConfigurationProperty注解完成配置。