Используйте SpringBoot SpEL в YAML - PullRequest
0 голосов
/ 09 июля 2020

Возможно ли в конфигурации Spring boot yaml использовать SpEL для вызова функций метода c stati? Я хочу найти доступный порт между диапазоном портов и установить порт сервера. Я знаю, что это можно сделать программно, но мне любопытно, можно ли это сделать только в YAML с помощью SpEL. Я пробовал следующее, что не работает, поскольку он видит SpEL как комментарий YAML

server:
    port: #{T(org.springframework.util.SocketUtils).findAvailableTcpPort(8000,9000)}

Этот не работает, поскольку он пытается установить SpEL как строку для порта

server:
    port: "#{T(org.springframework.util.SocketUtils).findAvailableTcpPort(8000,9000)}"

1 Ответ

1 голос
/ 09 июля 2020

Документы говорят, что

Наконец, хотя вы можете написать выражение SpEL в @Value, такие выражения не обрабатываются из файлов свойств приложения.

Таким образом, вам нужно будет переместить SpEL в аннотацию @Value, но вы можете предоставить для нее значения через YAML.

...