Java 从属性文件读取映射并使用spring注释@Value加载
我有一个需要填充到Springbean上的映射的(键/值)列表: 我可以使用下面的列表: 属性:Java 从属性文件读取映射并使用spring注释@Value加载,java,spring,Java,Spring,我有一个需要填充到Springbean上的映射的(键/值)列表: 我可以使用下面的列表: 属性: @Value("#{'${dmin.details.fields}'.split(',')}") private List<String> fields; dmin.details.fields=Abdullah,Zayed,+201020010 呼叫: @Value("#{'${dmin.details.fields}'.split(',')}") private List<S
@Value("#{'${dmin.details.fields}'.split(',')}")
private List<String> fields;
dmin.details.fields=Abdullah,Zayed,+201020010
呼叫:
@Value("#{'${dmin.details.fields}'.split(',')}")
private List<String> fields;
@Value(“#{${dmin.details.fields}.split(',')}”)
私有列表字段;
有人能告诉我这在Spring中是否可行吗?由于我在Spring中找不到任何方法将该属性作为地图来阅读,因此我必须使用Spring填写的列表来填写地图,如下所示:
@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]);
}
}
}
@Value(“#{${dmin.details.fields}.split(',')}”)
私有列表字段;
私有地图领域地图;
@施工后
公共void init(){
fieldsMap=newhashmap();
if(fields!=null&&fields.size()!=0){
用于(字符串字段:字段){
String[]splittedField=field.split(“,”);
fieldsMap.put(拆分字段[0],拆分字段[1]);
}
}
}
应用程序属性:
property.map={first:value, second:value}
然后在Java代码中,您可以:
@Value("#{${property.map}}")
Map<String, String> map;
@Value(“#{${property.map}”)
地图;
我发现了一个稍微不同的案例,并在下面解释,以防有人在找它
Expression parsing failed; nested exception is org.springframework.expression.spel.SpelParseException
@0: EL1044E: Unexpectedly ran out of input
它应该是
property.map={first:'value',second:'value'}
。同样值得注意的是,它需要Spring4.1+()谢谢,我遇到了这个问题,你的帖子确实帮了我的忙@basu76-如果我的评论有帮助,你可以投我的票:)