Spring @Value与arraylist拆分并获取第一个值

时间:2019-06-05 05:54:39

标签: java spring spring-boot spring-el

弹簧@Value拆分arraylist并获得arrayList的第一个值

我有my.list=a,b,c
我正在努力获得第一个值,即a

我尝试过

@Value("#{'${my.list}'.split(',')})
List<String> values;
String myVal = values.get(0);

有没有比该过程更好的方法了?

2 个答案:

答案 0 :(得分:1)

U这行有语法错误

@Value("#{'${my.list}'.split(',')})

应按以下所述纠正

@Value("#{'${my.list}'.split(',')}")
List<String> values;

我建议您采用以下解决方案,作为一种更好的方法

域类

@Component
public class Data {


    @Value("#{'${my.list}'.split(',')}")
    List<String> values;



    public List<String> getValues() {
        return values;
    }

    public void setValues(List<String> values) {
        this.values = values;
    }

}

这是如何使用域类的方法

@RestController
@RequestMapping("/")
public class Mycon {


    @Autowired
    Data data;

    @GetMapping
    public String hello(ModelMap model) {

        return data.getValues().get(0);

    }

}

application.properties文件

my.list=a,b,c

您可以直接采用以下值

@Value("#{'${my.list}'.split(',')[0]}")
String values;

答案 1 :(得分:0)

@Autowired
Environment env;

//To get the List<String>
List<String> values = Arrays.asList(env.getProperty("my.list").split(",");

//Then, you can get value into an Optional to prevent NullPointerException
Optional<String> myValue = values.stream().findFirst();