我有一个 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}
该应用程序从 IntelliJ Idea 部署到 Tomcat,因此我可以对其进行调试。我使用以下命令启动 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
然而,我之后我得到表明占位符未被替换的异常。
我该如何解决它,我。 e.确保我可以在
application.yaml
中指定一些信息(如用户名和密码)通过环境变量(这样我就不会在 application.yaml
中包含实际凭据)?
最佳答案
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
添加 export MAIL_HOSTNAME=
等到上面的行,或创建一个 setenv.sh
包含这些行的文件(与 catalina.sh
文件在同一目录中)。使用
setenv.sh
记录在 RUNNING.txt
Apache Tomcat 文件。
关于java - 如何确保在 Apache Tomcat 中运行的 Spring Boot 应用程序中替换了环境变量占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62753202/