繁体   English   中英

使用 spring el 将值放入地图中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM