Java配置文件如何取值?

application.properties 配置文件有如下配置:如何映射成 Bean, 遍历取值?属性多个

app.property.demo[0].name=demo0
app.property.demo[0].val=val0

app.property.demo[1].name=demo1
app.property.demo[1].val=val1

网上找到一篇文章,说的是错的,根本映射不了

#http协议下消息传输
msgtransfer.tranprocol.http.orderid = order1
msgtransfer.tranprocol.http.count = 100

#fix协议下消息传输
msgtransfer.tranprocol.fix.orderid = order2
msgtransfer.tranprocol.fix.count = 200
@Component
@Data
@ConfigurationProperties(prefix = "msgtransfer")
public class MsgTransferCfg {
    private Map<String, MsgInfo> tranprocol;

    public static class MsgInfo {
        private String orderid;
        private int count;
    }
}

关键点在 private Map<String, MsgInfo> tranprocol;,http 和 fix 会自动映射为 tranprocol 的 key,orderid 和 count 会映射到 MsgInfo 的成员属性上。

阅读 1.2k
1 个回答

@Component
@ConfigurationProperties(prefix = "app.property")
@Data
public class TestProperties {

private List<WebConfigs> demo = new ArrayList<>();

@Data
public static class WebConfigs {
    private String name;
    private String val;
}

}

app.property.demo[0].name=demo0
app.property.demo[0].val=val0

app.property.demo[1].name=demo1
app.property.demo[1].val=val1

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题