Yaml spring boot 二维数组写法
方案一:
Yaml
channel: info: - channel-ip: 192.168.1.40 channel-no: 5182001001 - channel-ip: 192.168.1.10 channel-no: 5182000002 - channel-ip: 192.168.1.30 channel-no: 5182001003 - channel-ip: 192.168.1.20 channel-no: 5182000004
JavaBean: 分2个, 不要用内部类的形式
@Component @Order(value = 1) @ConfigurationProperties(prefix = "channel") @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class ChannelProperties { private Listinfo = new ArrayList<>(); public List getInfo() { return info; } public void setInfo(List info) { this.info = info; } }
@Component @Order(value = 1) @ConfigurationProperties(prefix = "channel.info") @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class ChannelInfoPreperties { private String channelIp; private String channelNo; public String getChannelIp() { return channelIp; } public void setChannelIp(String channelIp) { this.channelIp = channelIp; } public String getChannelNo() { return channelNo; } public void setChannelNo(String channelNo) { this.channelNo = channelNo; } }
方案二:
application: gates: - name: A lanes: - A01 - A03 - name: B lanes: - B01 - B02
@Component @ConfigurationProperties(prefix = "application") @Setter @Getter @Slf4j public class GateInfoConfig { private Listgates = new ArrayList<>(); @Setter @Getter @ToString public static class GateInfo { private String name; private String[] lanes; } }
此方案中yml的名字需要与bean的属性名一致,如例子中的 gates、name、lanes