【问题标题】:Spring @Value with arraylist split and obtain the first valueSpring @Value with arraylist split 并获取第一个值
【发布时间】:2019-06-05 05:54:39
【问题描述】:

Spring@Value用arraylist拆分并获取arrayList的第一个值

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

我试过了,

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

有没有比这个过程更好的方法?

【问题讨论】:

  • @Value("#{'${my.list}'.split(',')}) List values; String myVal = values.get(0); 这里每条语句在新行中。不幸的是,它在这里连续显示
  • 你为什么会有这样的东西?
  • 您是否尝试过@Value("#{'${my.list}'.split(',')[0]}) 或组合应该可以工作

标签: java spring spring-boot spring-el


【解决方案1】:

你在这一行有语法错误

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

【讨论】:

  • 你能帮我用@Value() 语句让我直接得到值'a'
  • @Prathyusha 是的,我可以提供帮助。您可以根据您的要求参考编辑后的答案。
  • @Prathyusha 。不客气 。您可以将答案标记为正确答案,以供其他人参考为有用的答案。
【解决方案2】:
@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();

【讨论】:

  • 你能帮我用 @Value() 语句让我直接得到值 'a' 。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多