
SpringBoot项目中灵活配置数据库连接信息
SpringBoot 项目中灵活配置数据库连接信息
在 SpringBoot 项目开发中,将数据库连接信息写死在配置文件中存在诸多不便,比如在不同环境部署时需要频繁修改配置文件。本文将介绍如何在 SpringBoot 中通过配置文件将数据库相关信息配置成变量,以及如何在部署 jar 包时动态传入这些变量,从而实现更灵活的部署策略。
一、SpringBoot 配置文件中的变量配置
在 SpringBoot 的 application.yml
(或 application.properties
)配置文件中,我们可以使用 ${}
语法来引用变量,如下所示:
datasource:
username: ${DB_USERNAME:默认用户名}
password: ${DB_PASSWORD:默认用户密码}
url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/loblog100?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
在上述配置中,${DB_USERNAME:默认用户名}
表示如果在运行时没有通过外部传入 DB_USERNAME
变量,那么就使用 默认用户名
作为数据库用户名。其他的 DB_PASSWORD
、DB_HOST
和 DB_PORT
也是类似的逻辑。这样,我们就为数据库连接信息设置了可动态配置的变量。
二、通用版部署(以 1Panel 为例)
当我们使用类似 1Panel 这样的平台部署 SpringBoot 项目的 jar 包时,可以通过以下命令动态传入数据库信息:
java -jar -DDB_HOST=数据库IP -DDB_PORT=3306 -DDB_USERNAME=数据库登录名 -DDB_PASSWORD=数据库密码 app.jar
这里通过 -D
参数来设置系统属性,这些属性将覆盖配置文件中设置的默认值。如果想要使用配置文件中的默认值,只需要运行:
java -jar app.jar
这样就会使用 application.yml
中预先设置的默认数据库连接信息。
三、宝塔版部署
在宝塔面板中部署时,我们可以在相应的环境配置文件中设置数据库连接变量:
DB_HOST=数据库IP地址
DB_PORT=数据库端口
DB_USERNAME=数据库用户名
DB_PASSWORD=数据库密码
这样,在启动 SpringBoot 项目时,就会使用这些配置的变量值来连接数据库。如果想要使用默认值,直接部署项目而不添加这些环境变量配置即可。
通过以上方法,我们可以在 SpringBoot 项目中轻松实现数据库连接信息的灵活配置,无论是在不同的开发环境、测试环境还是生产环境中,都能够快速、方便地切换数据库连接,提高项目的部署效率和灵活性,减少因配置变更带来的风险和错误。