【发布时间】:2019-07-25 14:37:17
【问题描述】:
背景:
我已经阅读了很多关于如何使用ConfigurationProperties从配置中读取列表的示例。见下文
- Mapping list in Yaml to list of objects in Spring Boot
- https://github.com/konrad-garus/so-yaml
- https://www.boraji.com/spring-boot-configurationproperties-example
.. 等等。
我无法在 Scala 中实现这一点。我想从 application.yml 中获取组织列表(id 和名称),但它总是返回一个空列表。
application.yml
org-registry-list:
organisations:
-
orgId: 1
orgName: "Google"
-
orgId: 20
orgName: "Microsoft"
这是我在 Scala 中的尝试:
@Configuration
@ConfigurationProperties(prefix = "org-registry-list")
class OrgRegistryConfiguration {
var organisations : List[Organisation] = List.empty
}
object OrgRegistryConfiguration {
case class Organisation(orgId: Long, orgName: String)
}
返回
List()。
这适用于以下 Java 代码:
@Configuration
@ConfigurationProperties(prefix = "org-registry-list")
public class OrgRegistryConfiguration {
private List<Organisation> organisations;
public OrgRegistryConfiguration(List<Organisation> organisations) {
this.organisations = organisations;
}
public OrgRegistryConfiguration() {
}
public List<Organisation> getOrganisations() {
return organisations;
}
public void setOrganisations(List<Organisation> organisations) {
this.organisations = organisations;
}
public static class Organisation {
private long orgId;
private String orgName;
public Organisation(long orgId, String orgName) {
this.orgId = orgId;
this.orgName = orgName;
}
public Organisation() {}
public long getOrgId() {
return orgId;
}
public void setOrgId(long orgId) {
this.orgId = orgId;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
}
}
返回两个组织的列表
【问题讨论】: