首页 >Java >java教程 >如何使用环境变量管理不同环境下的Spring Boot数据库凭证?

如何使用环境变量管理不同环境下的Spring Boot数据库凭证?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-02 11:37:11369浏览

How Can I Manage Spring Boot Database Credentials Across Different Environments Using Environment Variables?

在 Spring Boot 的 Application.properties 中使用环境变量

跨各种环境部署 Spring Boot 应用程序时,避免硬编码至关重要application.properties 中的数据库凭据。为了解决这个问题,可以在属性文件中动态引用环境变量。

要利用此方法,请按照以下步骤操作:

1.创建系统环境变量

在本地和任何其他相关虚拟机上创建环境变量。将这些变量命名为与其 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"

2。在 application.properties 中引用环境变量

要在 application.properties 中包含环境变量,请使用以下语法:

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}

3.替代方法(推荐)

但是,@Stefan Isele提出的更简洁且易于管理的解决方案是使用 Spring 配置文件:

  • 创建多个名为 application-{profile-name}.properties.
  • 设置环境变量的属性文件spring.profiles.active 到所需的配置文件(例如 application-local.properties)。

Spring 将根据指定的配置文件自动读取相应的属性文件。

通过以下方式通过这些技术,您可以根据部署的环境动态配置 Spring Boot 应用程序,而无需在 application.properties 中硬编码敏感信息。

以上是如何使用环境变量管理不同环境下的Spring Boot数据库凭证?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn