繁体   English   中英

如何在 Spring Boot 中动态更改数据库?

[英]How to change database dynamically in Spring Boot?

我们如何在运行时更改 Spring 启动项目中的数据库凭据和源,或者您可以动态地说? 假设如果我们部署到测试服务器,API 项目中的数据库连接指向测试数据库,如果部署到生产服务器,数据库自动指向生产服务器。 做一些研究,我们需要在 spring 引导项目中设置这些设置。 从技术上讲,我们的项目将动态切换到多个数据库连接。

所有这些过程将如何在 Spring 引导中发生?

假设如果我们部署到测试服务器,API 项目中的数据库连接指向测试数据库,如果部署到生产服务器,数据库自动指向生产服务器。

有几种方法。 首先,您可以将属性值作为环境变量的一部分提供。 前任:

-Ddb_url=jdbc:mysql://<server>:<port>/<databasename> -Ddb_username=root -Ddb_password=mysql

spring.datasource.url=${db_url}
spring.datasource.username=${db_username}
spring.datasource.password=${db_password}

或者

您可以根据不同的环境使用不同的属性文件。

application.properties
application-test.properties
application-prod.properties

在这些属性文件中,您可以根据配置文件预先配置地址。 要激活特定环境的配置文件,您必须向 springboot 应用程序提供以下道具。 前任:

-Dspring.profiles.active=prod

在这种情况下,将首先使用application.properties文件来配置属性,然后再配置application-prod.properties中的属性。 如果两个文件中的属性匹配,则后面文件的属性将覆盖默认属性文件中的属性,即application.properties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM