[使用@ Value / SpEL通过构造函数构建对象列表

问题描述 投票:2回答:1

我有以下内容:

app.properties

indexes=1,2;2,3;3,4

我想将这些属性绑定到List<Index>,但找不到正确的SpEL语法。

Index.java

public class Index {

    public Index(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

现在,我正在用分号分隔符在构造函数中分割值,然后建立一个列表。

Service.java

...
List<Index> indexList;

public Service(@Value(value = "#{'${indexes}'.split(';')}") 
               List<String> properties) {

        List<Index> result = new ArrayList<>();

        for (String s : properties) {
            String[] split = s.split(",");
            Index index = new Index(Integer.valueOf(split[0]), Integer.valueOf(split[1]));
            result.add(index);
    }

    this.indexList = result;
}

我可以只一行吗?喜欢:

@Value(value = "some_spring_magic")
List<Index> indexList;
java spring spring-el
1个回答
0
投票

不幸的是,我不知道这种简单的方法。一个想法可以是使用分离器实用程序,例如:

© www.soinside.com 2019 - 2024. All rights reserved.