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

Spring @Value with arraylist split and obtain the first value

Spring @Value with arraylist split and get the first value of arrayList

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

我试过了,

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

还有比这个程序更好的方法吗?

你在这行有语法错误

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

更正如下

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

我建议您使用以下解决方案作为更好的方法

一个域class

@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;
    }

}

这是您如何使用域 class

@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;
@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();