У меня есть приложение Spring Boot, которое работает на сервере Apache Tomcat. В application.yaml
у меня есть, среди прочего, следующие записи:
mail:
pop3Host: ${MAIL_HOSTNAME}
inboxFolder: ${MAIL_INBOX}
hostName: ${MAIL_HOSTNAME}
port: ${MAIL_PORT}
userName: ${MAIL_USERNAME}
password: ${MAIL_PASSWORD}
Приложение развертывается на Tomcat из IntelliJ Idea, поэтому я могу его отлаживать.
Я запускаю Tomcat с помощью следующей команды:
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8090,server=y,suspend=n"
export JAVA_OPTS=" -DMAIL_HOSTNAME='smtp.provider.com' -DMAIL_INBOX='MAIL_INBOX' -DMAIL_PORT='587' -DMAIL_USERNAME='username' -DMAIL_PASSWORD='XXXXXXXX'"
export CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8090,server=y,suspend=n"
./catalina.sh jpda start
Однако после того, как я
- запустите Tomcat, используя приведенный выше скрипт,
- разверните приложение Spring Boot из IntelliJ Idea и
- убедитесь, что код, в котором используются эти значения, выполняется,
Я получаю исключение, указывающее, что заполнители не были заменены.
Как исправить, т. е. убедиться, что я могу указать некоторую информацию (например, имя пользователя и пароль) в application.yaml
через переменные среды (чтобы я не включал фактические учетные данные в application.yaml
)?
export MAIL_HOSTNAME="smtp.provider.com"
в сценарий может сработать. - person Albert Hendriks   schedule 08.07.2020