在 Spring Boot 中,application.properties 文件包含应用程序的配置设置。当应用程序在不同环境(本地、Jenkins、OpenShift)上运行时,通常需要动态调整这些设置。实现此目的的一种方法是使用环境变量。
要设置环境变量,请在本地和 Jenkins VM 中创建系统环境变量。确保这些变量具有与 OpenShift 中使用的相同的名称和值。例如:
export OPENSHIFT_MYSQL_DB_HOST="jdbc:mysql://localhost" export OPENSHIFT_MYSQL_DB_PORT="3306" export OPENSHIFT_MYSQL_DB_USERNAME="root" export OPENSHIFT_MYSQL_DB_PASSWORD="123asd"
要在 application.properties 中使用环境变量,只需使用语法 ${VARIABLE_NAME} 包含它们即可。例如:
spring.datasource.url = ${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/"nameofDB" spring.datasource.username = ${OPENSHIFT_MYSQL_DB_USERNAME} spring.datasource.password = ${OPENSHIFT_MYSQL_DB_PASSWORD}
注意:也可以使用Spring环境对象创建环境变量,但正如@Stefan Isele建议的,在application.properties中使用直接变量替换是更简单的方法。
使用环境变量的替代方法是使用 Spring配置文件。通过这种方法,您可以创建多个 application.properties 文件,每个文件都针对特定环境进行定制。 Spring 将根据 spring.profiles.active 属性的值自动加载适当的文件,该属性可以设置为环境变量或通过命令行参数设置。例如,您可以创建 application-local.properties、application-jenkins.properties 和 application-openshift.properties 文件。在这种情况下,您可以在部署到 OpenShift 时设置 OPENSHIFT_MYSQL_DB_HOST 变量和 spring.profiles.active=openshift。
通过使用配置文件,您可以避免在环境变量中暴露数据库凭据或其他敏感信息,因为它们是仅用于配置活动配置文件。
以上是如何使用环境变量在不同环境下配置我的Spring Boot应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!