3.5 实战:Spring Boot 实现系统多环境配置

第3章 Spring Boot 的系统配置

3.1 Spring Boot 系统配置文件
3.2 Spring Boot 自定义配置项
3.3 Spring Boot 其他配置
3.4 Spring Boot 日志配置
3.5 实战:Spring Boot 实现系统多环境配置

3.5 实战:Spring Boot 实现系统多环境配置

在实际项目开发的过程中,需要面对不同的运行环境,比如开发环境、测试环境、生产环境等,每个运行环境的数据库、Redis服务器等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错的概率极大。庆幸的是,Spring Boot 为我们提供了更加简单方便的配置方案来解决多环境的配置问题,下面就来演示 Spring Boot 如何实现系统多环境配置。

Spring Boot 实现系统多环境配置的步骤:

  1. 多环境的配置:在项目的 resources 目录下分别创建开发环境(application-dev.properties)、测试环境(application-test.properties)、生产环境(application-prod.properties)配置文件,然后修改不同环境对应的配置信息。
  2. 多环境的切换:在主配置文件(application.properties)中通过spring.profiles.active配置项来激活相应的运行环境。
注意:如果没有指定任何 profile 的配置文件,Spring Boot 会默认启动 `application-default.properties`(默认环境)。

3.5.1 多环境的配置

(1)创建多环境配置文件

创建多环境配置文件时,需要遵循 Spring Boot 允许的命名约定来命名,格式为 application-{profile}.properties,其中{profile}为对应的环境标识。在项目 resources 目录下分别创建application-dev.properties、application-test.properties 和 application-prod.properties 三个配置文件,对应开发环境、测试环境和生产环境。

Spring Boot 各系统环境配置文件,如图所示。

SpringBoot各系统环境配置文件.png

如图所示,根据应用系统中常见的三个运行环境拆分成了多个不同的配置文件,分别独立配置上面各运行环境的配置项。具体如下所示:

  • application.properties:项目主配置文件,包含项目所需的所有公共配置。
  • application-dev.properties:开发环境配置文件,包含项目所需的单独配置。
  • application-test.properties:测试环境配置文件,包含项目所需的单独配置。
  • application-prod.properties:生产环境配置文件,包含项目所需的单独配置。

创建多环境配置文件.png

(2)修改配置文件
通常情况下,开发环境、测试环境和生产环境使用的数据库是不一样的,所以接下来以不同环境配置不同数据库为例来演示多环境的配置。

示例:

项目主配置文件:application.properties

# 服务器端口配置
server.port=8081

# 系统运行环境
# spring.profiles.active=dev

开发环境配置文件:application-dev.properties

# 服务器端口配置
#server.port=8091

# 指定数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc,Driver
# 数据库jdbc连接url地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myapp_dev
# 数据库账号
spring.datasource.username=root
spring.datasource.password=root

测试环境配置文件:application-test.properties

# 服务器端口配置
#server.port=8092

# 指定数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc,Driver
# 数据库jdbc连接url地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myapp_test
# 数据库账号
spring.datasource.username=root
spring.datasource.password=root

生产环境配置文件:application-prod.properties

# 服务器端口配置
#server.port=8093

# 指定数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc,Driver
# 数据库jdbc连接url地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myapp_prod
# 数据库账号
spring.datasource.username=root
spring.datasource.password=root

默认环境配置文件:application-default.properties

# 服务器端口配置
server.port=8090

3.5.2 多环境的切换

配置了多环境之后,在实际测试、运行过程中,如何切换系统运行环境呢?

非常简单,通过修改 application.properties 配置文件中的 spring.profiles.active 配置项来激活相应的运行环境。

注意:如果没有指定任何 profile 的配置文件,Spring Boot 会默认启动 application-default.properties(默认环境)。

指定项目的启动环境有以下3种方式:

(1)方式一:配置文件指定项目启动环境

Spring Boot 支持通过 spring.profiles.active 配置项目启动环境,在 application.properties 配置文件中增加如下配置项指定对应的环境:

spring.profiles.active=dev

在上面的示例中,通过在 application.properties 配置文件中设置 spring.profiles.active 的配置项来配置系统的运行环境。这里配置的是 dev 开发环境。

(2)方式二:IDEA 编译器指定项目启动环境

一般在 IDEA 启动时,直接在 IDEA 的 Run/debug Configurations 页面配置项目启动环境,如图所示:

IDEA编译器指定项目启动环境.png

如图所示,项目调试运行时,IDEA 编译器可以通过 VM optionsProgram argumentsActive profiles 三个参数设置启动方式。

备注:上面三个参数任选其一即可。

拓展:

上面三个参数设置启动方式 对应的 java启动命令,如下图所示:

IDEA编译器指定项目启动环境(解析成的命令).png

(3)方式三:命令行启动指定项目启动环境

在命令行通过 java -jar 命令启动项目时,需要如下指定启动环境:

java -jar xxx.jar --spring.profiles.active=dev

如上所示,程序打包之后,可以在命令行使用 java -jar 的方式启动,并设置启动参数spring.profiles.active=dev,以开发环境为默认配置。

启动项目时,在系统启动日志中可以看到加载的是哪个环境的配置文件,如图所示。

在SpringBoot项目启动日志中可以看到加载的是哪个环境的配置文件.png

在上面的启动日志中可以看到系统目前启动的是dev开发环境。如果实现相关的数据库测试方法,可以验证相应的数据库操作是否生效。

来源:《Spring Boot 从入门到实战》学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值