[英]How does Springboot use a database instead of a application.properties
[英]How to softcode map in SpringBoot application.properties file instead of hardcoding?
因此,我想返回一個JSON對象,該對象應類似於:
{"Issues":[{"IssueName": "Loan"},{"IssueName": "Lease"},{"IssueName": "Other"}]}
到目前為止,我最接近這種格式的是通過以下代碼:
@RequestMapping(value="/issueTypes", produces = MediaType.APPLICATION_JSON_VALUE)
public Map<String, String> getIssue(){
HashMap<String, String> issue = new HashMap<>();
issue.put("issues", "Loan");
issue.put("issues", "Lease");
issue.put("issues", "Other");
return issue;
}
雖然map用花括號將鍵值對提供給我,但不允許我將相同的鍵設置為不同的值(出於明顯的原因)。 還有其他方法可以返回上述JSON對象嗎? 而且是有可能softcode它在application.properties
以便日后如果我想添加更多的問題類型,我可以很容易地做到這一點?
一種方法是使用條目List
而不是條目Map
:
@Value("#{'${issues}'.split(',')}")
private List<String> issues;
@RequestMapping(value = "/issueTypes", produces = MediaType.APPLICATION_JSON_VALUE)
public Map<String, List<Map.Entry<String, String>>> getIssue() {
Map<String, List<Map.Entry<String, String>>> m = new LinkedHashMap<>();
m.put("Issues", issues.stream()
.map(s -> Map.entry("issueName", s))
.collect(Collectors.toList()));
return m;
}
並在您的application.properties中:
issues=Loan,Lease,Other
輸出:
{"Issues":[{"issueName":"Loan"},{"issueName":"Lease"},{"issueName":"Other"}]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.