Как использовать переменные среды для приложения Springboot, используя файл .env? - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь создать приложение Springboot, которое подключается к БД. Я хотел бы использовать файл .env, который имеет конфиденциальный контент. Во-первых, я тестирую, изменив порт на 8081. Мой файл .env имеет следующий контент

PORT=8081

Мой application.properties имеет следующий контент

server.port=${PORT}

I есть ошибка времени выполнения, что PORT не может быть решен, что следовало ожидать, когда я не знал, как передать файл .env в свойства.

Может ли кто-нибудь указать мне правильное направление?

PS: я использую порт в качестве примера, если это удастся, я также установлю учетные данные БД с помощью файла .env.

ОБНОВЛЕНИЕ: Я бы предпочел использовать файл .env, потому что когда приложение развертывается с использованием AWS CodePipeline, у меня могут быть установлены переменные среды на этапе CodeBuild, где я буду собирать банку и в конечном итоге docker изображение на этой стадии. Примерно так.

EnvironmentVariables:
  - Name: PORT
    Value: "{resolve:secretsmanager:DBCredentials:SecretString:port}"

Ошибка Caused by java.lang.IllegalArgumentException: Could not resolve placeholder 'PORT' in value "${PORT}"

1 Ответ

0 голосов
/ 12 марта 2020

Я думаю, у вас есть подход реагирования! Но весной для использования нескольких сред лучше иметь файл свойств или yaml в зависимости от среды.

Ps: имя файла должно называться как application-{environment name}.properties и должно находиться в папке ресурсов.

Для разработчиков: Имя файла: application-dev.properties

server.port=8089

Для ИТ: Имя файла: application-it.properties

server.port=8090

In В файле application.properties, где мы обычно устанавливаем некоторые общие свойства для всех сред, мы можем добавить свойство ie: spring.profiles.active = dev // вы можете поместить то, что вы хотите, в зависимости от ваших потребностей. Если у вас есть несколько профилей, вы можете разделить их с помощью «,».

Для более подробной информации вы можете проверить пружинные профили

...