Spring-读取多行属性值大于@value的YAML

Spring-读取多行属性值大于@value的YAML,spring,yaml,Spring,Yaml,目前,我正在@PropertySouce上实现一个YAML文件,并在@Value上读取属性本身。 但是现在我在YAML文件中有一个多行属性,并且希望以相同的方式读取它。(我想在代码之外存储sql查询) 我知道,我可以在“>”或“>-”或“|”上指示多行YAML字符串。 但是,当我尝试此操作并读取@Value上的属性时,我只在字符串中得到“>”作为结果。 那么,有没有一种方法可以完全读取多行YAML属性 我知道,我可以用反斜杠避开每一行,但这对我来说不是最好的解决方案 例如,我想在我的测试中阅读“

目前,我正在@PropertySouce上实现一个YAML文件,并在@Value上读取属性本身。 但是现在我在YAML文件中有一个多行属性,并且希望以相同的方式读取它。(我想在代码之外存储sql查询)

我知道,我可以在“>”或“>-”或“|”上指示多行YAML字符串。 但是,当我尝试此操作并读取@Value上的属性时,我只在字符串中得到“>”作为结果。 那么,有没有一种方法可以完全读取多行YAML属性

我知道,我可以用反斜杠避开每一行,但这对我来说不是最好的解决方案

例如,我想在我的测试中阅读“MultiLink”键。yml:

multilinekey: >
   Hi, I am a multiline String.
   But I can't get readed over @Value by spring.
并希望在我的代码中实现此值,如下所示:

@PropertySource("classpath:/test.yml")
public class myTestClass
   @Value("${multilinekey}")
   private String multiline;

   ...
}
有没有办法做到这一点


或者有没有更好的方法将我的sql查询外包到自己的文件中,并轻松地将它们包含在@Value上?

这对我来说很好:

controller.java

@Value("${str}")
String str;

@GetMapping("/probe")
public String probe(){
    return str;
}
应用程序.yaml

str:"This is a very long sentence
    that spans several lines in the YAML
    but which will be rendered as a string
    with NO carriage returns."
多亏了flyx yml文件未解析为yaml文件。
答案也是如此。

当我在我的代码中尝试这一点时,我在str变量中只得到了“这是一个很长的句子”你能粘贴你的确切yml文件和使用@Value引用它的类吗?看起来很奇怪,它对您不起作用,所以您是说,使用您显示的代码,变量multiline中有一个
?这意味着该文件没有被解析为YAML——您是否配置了Spring来解析它?看见