Spring Boot 入门系列(二十四)多环境配置,3分钟搞定

createh51周前 (03-26)技术教程1

之前讲过Spring Boot 的系统配置和自定义配置,实现了按照实际项目的要求配置系统的相关熟悉。但是,在实际项目开发过程中,需要面对不同的环境,例如:开发环境,测试环境,生产环境。各个环境的数据库、Redis服务器等配置有可能不同,这就需要频繁的手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错的概率还极大。庆幸的是,Spring Boot 为我们提供了更加简单方便的配置方案来解决多环境的配置问题,下面就来聊一聊Spring Boot 系统配置之多环境配置实现。


一、增加配置文件

首先,在resource 目录下,分别创建
application-dev.properties、
application-test.properties 和
application-production.properties 三个配置文件对应:开发环境、测试环境 和 生产环境。如下图所示:

根据开发、测试、生产等三个常见的环境分成了三个配置文件,分别配置上面三个环境的各自的配置项。

说明:

  application.properties 为项目主配置文件,包含项目所需的所有公共配置。

  
application-dev.properties 为开发环境配置文件,配置开发环境所需的单独配置。

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

  
application-production.properties 为生产环境配置文件。

二、各环境相关配置

1、修改各个环境的配置文件

这里以不同环境的数据库配置不同为例,配置数据库的不同连接,配置信息如下:

# 数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/zwz_test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

上面这个配置是开发环境
application-dev.properties 配置文件。其他的配置文件修改对应的配置连接即可,这里这里不重复了。

2、修改 application.properties 主配置文件

application.properties 为项目主配置文件,包含项目所需的所有公共配置,其他配置存放在
application-dev.properties 等配置文件中。

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

# 数据源相关配置,这里用的是阿里的druid 数据源
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=1
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.stat-view-servlet.allow=true

# mybatis 相关配置
mybatis.type-aliases-package=com.weiz.pojo
mybatis.mapper-locations=classpath:mapper/*.xml
mapper.mappers=com.weiz.utils.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL
# 分页框架
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
# 开发环境
spring.profiles.active=dev
# 测试环境
# spring.profiles.active=test
# 生产环境
# spring.profiles.active=production


3、在 application.properties 激活不同环境的配置文件

在application.properties 配置文件中,增加如下配置,指定对应的环境目录。

# 开发环境
spring.profiles.active=dev
# 测试环境
# spring.profiles.active=test
# 生产环境
# spring.profiles.active=production

文件中的 spring.profiles.active 即为 指定当前的项目的环境。选择使用对应的环境配置,只需要在application.properties 中加上 spring.profiles.active=test ,指定配置文件的后缀,就可以使用对应环境的配置。

三、启动测试

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

从上面的启动日志,可以看到系统目前启动的是dev 开发环境。调用相关的接口,也可以查到系统最终连接的是哪个数据库。

四、启动项目指定环境

1、运行启动项目指定环境

在项目开发过程中,通过修改配置文件就能非常轻松的切换项目环境,但是打包部署时,能否指定对应的环境呢?答案是肯定的,下面我们来看看怎么快捷打包部署不同的环境:

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

我们平时启动打包的jar包时,可能使用的是 java -jar myjavaapp.jar来启动项目,如果我们需要制定特定的环境启动只需要加上一个启动属性即可轻松完成一个jar在不同环境通用的效果。

2、idea 运行项目指定环境

idea 运行项目时,指定项目运行环境也特别简单,idea配置VM参数即可。在VM选项中输入-Dspring.profiles.active=dev,表示激活dev环境;然后重启工程访问即可。


最后

以上,就把Spring Boot 项目配置多环境介绍完了,实现起来比较简单。

这个系列课程的完整源码,也会提供给大家。大家私信我(章为忠学架构),回复:springboot源码。获取这个系列课程的完整源码。

推荐阅读:

Spring Boot入门系列(十五)Spring Boot 开发环境热部署的配置

Spring Boot入门系列(十三)如何实现事务,极简版!

Spring Boot入门系列(二十)快速实现Restful API 接口

Spring Boot 使用JdbcTemplate操作数据库,配置多数据源

Spring Boot入门系列(二十二)使用Swagger2构建RESTful API文档

相关文章

程序员:JDK的安装与配置(完整版)

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Java基础篇——环境配置

Java语言简介Java语言源自于Oracle-Sun公司,是当今最通用、最流行的软件开发语言之一。Java是简单的、面向对象的语言,最大的特性是与平台无关,有“write once, run eve...

Java教程:学会写Starter-你就懂了SpringBoot自动配置

一、为什么要写Starter目前是微服务开发时代,微服务架构,最新编写单元,一定是基于SpringBoot技术,即使不是微服务,目前也基本使用SpringBoot单体应用去掉SSM开发。故在面试中,必...

nacos配置更新后,java项目无需重启配置就生效

在做java spring项目中,基本上用到的配置中心都是nacos,很方便的管理配置信息。在做配置管理的过程中,我们希望的是在配置修改的时候,java应用就能读取到最新的配置,而不需要重启应用使配置...

Java Redis配置与优化

NoSQL之Redis配置与优化文章目录NoSQL之Redis配置与优化一、关系型数据库与非关系型数据库2.进入目录然后编译安装3.执行install_server.sh脚本5.优化路径并查看端口是否...

Spring概述:Spring中lOC和DI介绍,Spring框架用啥方式配置数据

IoC和DI简介IoC(Inversion of Control)是“控制反转”的意思。如何理解“控制反转”这个词呢?首先我们需要知道反转的是什么,是由谁来控制。在Spring框架没有出现之前,在Ja...