目前我在@PropertySource上实现YAML文件,并在@Value上读取属性本身。但现在我的YAML文件中有一个多行属性,并希望以相同的方式读取它。(我希望将SQL查询存储在代码之外)
我知道,我可以通过"〉"或"〉-"或"|"。但是当我尝试这样做并在@Value上读取属性时,我只得到了"〉"作为String中的结果。那么,有没有办法完全读取多行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查询在自己的文件,并包括他们容易超过 @Values ?
3条答案
按热度按时间b4qexyjb1#
这对我来说很好:
controller.java
application.yaml
avwztpqn2#
多亏了flyx,yml文件没有被解析为yaml文件。所以这个链接就是答案。
wwodge7n3#
如this answer中所述,正确的方法是使用引号和
\
: