Значение свойства конфигурации условного Spring в зависимости от типа ОС - PullRequest
0 голосов
/ 06 января 2020

Мне нужно настроить свойство Spring (в моем случае для Flyway) в application.yml в зависимости от типа ОС, на которой запущено приложение. AFAIK, Spring не поддерживает выражения SpEL в файлах YAML.

Пока что лучшее решение, которое я мог придумать, использует системное свойство Java os.name и свойство поиска:

spring:
  flyway:
    collations:
      Linux: de_DE
      Windows 10: de-DE-x-icu
      Windows 8.1: de-DE-x-icu 
      Windows 7: de-DE-x-icu 
    placeholders:
      collation: ${spring.flyway.collations.${os.name}:de_DE}

Это очень уродливо, главным образом потому, что все возможное значения для os.name должны быть явно перечислены как полные литералы.

Есть ли лучший способ сделать это? Может быть, делегировать spring.flyway.placeholders.collation какому-либо компоненту конфигурации для установки программно? Это также должно работать для модульных тестов.

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