[英]Mapping list in yml to list of objects in Scala (Spring Boot)
背景:
我已經閱讀了一些有關如何使用ConfigurationProperties
從config讀取列表的示例。
.. 和更多。
我無法在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;
}
}
}
返回兩個組織的列表
我設法解決了這個問題。 這是我所做的:
List
更改為Array
scala.beans.BeanProperty
工作代碼:
import scala.beans.BeanProperty
@Configuration
@ConfigurationProperties(prefix = "org-registry-list")
class OrgRegistryConfig() {
@BeanProperty
var organisations: Array[Organisation] = _
}
object OrgRegistryConfig {
class Organisation() {
@BeanProperty
var orgId: Long = _
@BeanProperty
var orgName: String = _
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.