实战!三分钟搞定Spring Boot 多环境配置

开发 项目管理
在实际项目开发的过程中,需要面对不同的运行环境,比如开发环境、测试环境、生产环境等,每个运行环境的数据库、Redis服务器等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。

本文转载自微信公众号「架构师精进」,作者章为忠。转载本文请联系架构师精进公众号。

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

一、多环境的配置

通常应用系统可能在开发环境(dev)、测试环境(test)、生产环境(prod)中运行,那么如何做到多个运行环境配置灵活、快速切换呢?SpringBoot提供了极简的解决方案,只需要简单的配置,应用系统就能灵活切换运行环境配置。

1. 创建多环境配置文件

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

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

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

2. 修改配置文件

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

首先,修改application.properties,配置系统的启动端口:

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


在上面的示例中,application.properties包含项目所需的所有公共配置,这里配置系统的启动端口,所有环境的启动端口都是8088。

然后,修改application-dev.properties开发环境的配置,增加数据库的连接配置,代码示例如下:

# 指定数据库驱动
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


配置数据库连接的相关属性,我们看到开发环境配置的数据库是myapp_dev。

其他环境的配置文件修改对应的配置连接即可,以上项目的多环境配置就完成了。接下来演示切换项目运行环境。

二、多环境的切换

前面讲了如何配置多环境,那么,在实际测试、运行过程中如何切换系统运行环境呢?这个也非常简单,通过修改application.properties配置文件中的spring.profiles.active配置项来激活相应的运行环境。如果没有指定任何profile的配置文件,Spring Boot默认会启动application-default.properties(默认环境)。

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

(1)配置文件指定项目启动环境

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

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


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

(2)IDEA编译器指定项目启动环境

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

项目调试运行时,IDEA编译器可以通过VM options、Program arguments、Active profiles三个参数设置启动方式。

(3)命令行启动指定项目环境

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

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


如上所示,程序打包之后,可以在命令行使用java –jar的方式启动,并设置启动参数spring.profiles.active=dev,以开发环境为默认配置。在application-{profile}.properties中配置完成后,启动项目时,在系统启动日志中可以看到加载的是哪个环境的配置文件,如下图所示:

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

最后

以上,我们就把Spring Boot 多环境配置介绍完了。Spring Boot 多环境配置是非常基础,非常重要的功能,也是Spring Cloud 配置中心的基本配置。

责任编辑:武晓燕 来源: 架构师精进
相关推荐

2009-11-05 16:04:19

Oracle用户表

2022-01-05 18:18:01

Flink 数仓连接器

2020-11-20 08:36:59

Jpa数据代码

2024-05-16 11:13:16

Helm工具release

2021-09-16 10:29:05

开发技能代码

2009-11-09 12:55:43

WCF事务

2023-12-27 08:15:47

Java虚拟线程

2022-02-17 09:24:11

TypeScript编程语言javaScrip

2024-01-16 07:46:14

FutureTask接口用法

2021-04-20 13:59:37

云计算

2024-08-30 08:50:00

2009-11-12 09:16:15

ADO.NET数据库连

2020-06-30 10:45:28

Web开发工具

2013-06-28 14:30:26

棱镜计划棱镜棱镜监控项目

2023-12-23 18:04:40

服务Eureka工具

2021-12-17 07:47:37

IT风险框架

2021-02-03 14:31:53

人工智能人脸识别

2024-07-05 09:31:37

2024-01-12 07:38:38

AQS原理JUC

2024-10-15 09:18:30

点赞
收藏

51CTO技术栈公众号