java - 如何确保在 Apache Tomcat 中运行的 Spring Boot 应用程序中替换了环境变量占位符?

标签 java spring-boot tomcat9

我有一个 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
然而,我之后
  • 使用上面的脚本启动 Tomcat,
  • 从 IntelliJ Idea 部署 Spring Boot 应用程序和
  • 确保执行了使用这些值的代码,

  • 我得到表明占位符未被替换的异常。
    我该如何解决它,我。 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/

    相关文章:

    spring-boot - 使用 Spring boot 时出现 403 禁止错误 - 安全

    file - 尝试在 HD 上写入文件时得到 "(Read-only file system)"

    java - 启动子进程将 Spring Boot Web 应用程序部署到 Tomcat 9 时出错

    java - Java 中跳过第一次出现并分割字符串

    java - 将位图存储在数组中?

    spring-boot - 使用 Mockito 模拟带有 @Transactional 方法的类

    java - Spring Boot 2.1 和 Java 11 中的 Bean 生命周期

    docker - 在 docker 中运行 tomcat 时无法访问 tomcat 管理器或任何其他默认 tomcat 应用程序

    java - 在一次 add() 调用中,我可以在 Solr 服务器中索引多少个文档?

    java - 如何遍历对象列表并分配 child ?