По какой-то причине этот супер удобный трюк ускользал от меня годами. Обратите внимание, что я резюмирую это из руководства: https://www.tutorialworks.com/spring-boot-kubernetes-override-properties/. Решил, что стоит повторить.
Представьте, что у вас есть приложение Spring со следующими свойствами
foo foo.bar foo.barBaz
И вы хотели бы переопределить эти параметры во время выполнения с помощью переменных env. Вместо того, чтобы определять специальные заполнители переменных, как это обычно предлагается, например:
foo=${FOO_VAR:#{null}}
просто установите env. переменные, используя следующее соглашение
prop env_var ---------------------- foo -> FOO foo.bar -> FOO_BAR foo.barBaz -> FOO_BAR_BAZ foo.bar-baz -> FOO_BAR-BAZ
Другими словами, Spring неявно знает, что нужно искать переменные env_variables с тем же именем, что и свойство с заменой .
и camelcase на _
Надеюсь это поможет!