带有数组列表拆分的春季@Value
并获取arrayList的第一个值
我有my.list=a,b,c
我正在努力获得第一个值,即
我试过了
@Value("#{'${my.list}'.split(',')})
List<String> values;
String myVal = values.get(0);
有没有比这个程序更好的方法?
此行中有语法错误
@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);
}
}
应用程序属性文件
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();