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