【发布时间】:2019-08-08 13:03:50
【问题描述】:
目前我正在通过@PropertySouce 实现一个YAML 文件并通过@Value 读取属性本身。 但是现在我的 YAML 文件中有一个多行属性,并且希望以相同的方式读取它。 (我想将我的 sql 查询存储在我的代码之外)
我知道,我可以在“>”或“>-”或“|”上指示多行 YAML 字符串。 但是当我尝试这个并通过@Value 读取属性时,我只得到“>”作为我的字符串的结果。 那么,有没有办法完整地读取多行 YAML 属性?
我知道,我可以用反斜杠转义每一行,但这对我来说不是最好的解决方案。
所以例如我想在我的 test.yml 中读取键“multilinekey”:
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 轻松包含它们?
【问题讨论】:
-
所以您是说,使用您显示的代码,变量 multiline 中有一个
>?这意味着该文件没有被解析为 YAML——你是否配置了 Spring 来做到这一点?见this answer。