channel:info:- channel-ip: 192.168.1.40channel-no: 5182001001- channel-ip: 192.168.1.10channel-no: 5182000002- channel-ip: 192.168.1.30channel-no: 5182001003- channel-ip: 192.168.1.20channel-no: 5182000004

JavaBean:分2个, 不要用内部类的形式

@Component@Order(value = 1)@ConfigurationProperties(prefix = "channel")@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)public class ChannelProperties { private List info = 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: Alanes:- A01- A03- name: Blanes:- B01- B02
@Component@ConfigurationProperties(prefix = "application")@Setter@Getter@Slf4jpublic class GateInfoConfig {private List gates = new ArrayList();@Setter@Getter@ToStringpublic static class GateInfo {private String name;private String[] lanes;}}

此方案中yml的名字需要与bean的属性名一致,如例子中的 gates、name、lanes