弹簧@Value
拆分arraylist并获得arrayList的第一个值
我有my.list=a,b,c
我正在努力获得第一个值,即a
我尝试过
@Value("#{'${my.list}'.split(',')})
List<String> values;
String myVal = values.get(0);
有没有比该过程更好的方法了?
答案 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();