[英]Get values into a map using spring el
我在属性文件中有一个值
currency.codes=US:USD,IN:INR,AU:AUD
我希望使用 spring el 将这些值放入带有(键,值)对(例如(美国,美元)等)的地图中,我正在尝试类似的方法
@Value("#{'${currency.codes}'.split(',|:')}")
private Map<String, String> myMap;
这显然行不通。 但是,如果有人可以向我推荐这样最少的代码或任何其他替代解决方案,我将不胜感激。 有很多这样的属性我需要进入地图。 -TIA
您可以编写一个静态辅助方法并在您的表达式中使用它来降低 SpEL 代码的复杂性。
public class MapDecoder {
public static Map<String, String> decodeMap(String value) {
Map<String, String> map = new LinkedHashMap<>();
String[] pairs = value.split(",");
for (String pair : pairs) {
String[] parts = pair.split(":");
map.put(parts[0], parts[1]);
}
return map;
}
}
public class MyBean {
@Value("#{T(mypackage.MapDecoder).decodeMap('${currency.codes}')}")
private Map<String, String> myMap;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.