Spring - чтение YAML со значением многострочного свойства над @Value - PullRequest
0 голосов
/ 18 марта 2019

В настоящее время я реализую YAML-файл через @PropertySouce и читаю само свойство через @Value.Но теперь у меня есть многострочное свойство в моем файле YAML, и я хочу прочитать его таким же образом.(Я хочу хранить свои sql-запросы вне моего кода)

Я знаю, что могу указать многострочную строку YAML над ">" или "> -" или "|".Но когда я пробую это и читаю Property over @Value, я получаю только «>» как результат в моей строке.Итак, есть ли способ полностью прочитать многострочное свойство YAML?

Я знаю, что я могу экранировать каждую строку с обратной косой чертой, но это не лучшее решение для меня.

Так, например, я хочу прочитать ключ "multilinekey" в моем тесте.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?

Ответы [ 2 ]

1 голос
/ 18 марта 2019

Это прекрасно работает для меня:

controller.java

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

@GetMapping("/probe")
public String probe(){
    return str;
}

application.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."
0 голосов
/ 22 марта 2019

Благодаря flyx файл yml не был проанализирован как файл yaml.Так что эта ссылка является ответом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...