我有一个(键/值)列表需要填充到spring bean上的地图:
dmin.details.fieldsMap=name,Abdullah,\ street,Zayed,\ phone,+201020102010
我使用下面的列表正常工作:
属性:
dmin.details.fields =阿卜杜拉扎耶德,+ 201020102010
调用
@Value("#{'${dmin.details.fields}'.split(',')}")
private List<String> fields;
有人可以建议在春天这样做吗?
答案 0 :(得分:13)
application.properties:
property.map={first:value, second:value}
然后在Java代码中你可以:
@Value("#{${property.map}}")
Map<String, String> map;
答案 1 :(得分:1)
由于我在春天没有找到任何方式将地图作为地图阅读,我必须使用春天填写的列表填写地图,如下所示:
@Value("#{'${dmin.details.fields}'.split(',')}")
private List<String> fields;
private Map<String, String> fieldsMap;
@PostConstruct
public void init() {
fieldsMap = new HashMap<String, String>();
if (fields != null && fields.size() != 0) {
for (String field : fields) {
String[] splittedField = field.split(",");
fieldsMap.put(splittedField[0], splittedField[1]);
}
}
}
答案 2 :(得分:0)
我发现了一个稍有不同的情况,并在下面进行了说明,以防万一有人在寻找它。
在Java类中
@Value(“#{$ {trade_id_date}}”) 私人地图tradeIdDateMap;
如果您不将左侧用字母数字括起来,则将得到
Expression parsing failed; nested exception is org.springframework.expression.spel.SpelParseException
@0: EL1044E: Unexpectedly ran out of input