【SpringBoot系列】配置多环境配置文件

之前没有本身搭架构,因此一直很好奇为何配置文件会分为dev、test、prod三种类型的文件。后面虽然慢慢知道这三种文件的做用,但是由于没有实际配置过,因此对它的重要程度感知还不是很明显。后来本身搭建环境的时候,要本地调试、要上测试环境、要发布到生产等等事情,才发现配置多环境的配置文件是多么重要,首先咱们先来聊聊这样作,在实际开发中有哪些具体的做用。java

1、环境介绍redis

1.dev环境spring

在平时开发的时候确定会有测试环境,可是一方面测试环境构建的时间会比较漫长,因此通常一天就几回,因此在不少时候咱们都须要本地进行debug调试。基于这种场景咱们首先就须要一份dev环境(中文名称开发环境配置),经过dev配置咱们就能够将数据库的地址、服务器的地址、redis、mongodb等地址,配置为本身的本地的服务器,方便咱们进行bug调试。mongodb

2.test环境数据库

本地开发环境毕竟和真实的环境差距仍是很大的,无论从cpu、内存、数据等等这些来看都有很大的差异,最重要的是测试人员本身确定没办法本地调试,这些非开发人员要参与测试,必须有一个测试环境用来作专门的测试平台。这个时候咱们就须要新配置一个test环境(中文名称测试环境),经过test环境,咱们的测试人员、app人员、开发人员均可以经过这个环境来作本身的工做。服务器

3.prod环境网络

若是测试环境的项目通过严格的测试,要发布出去给外网普通用户来用的话,确定须要一个给全部用户用的环境,这个环境就叫作prod环境(中文名称生产环境)。以前的test环境通常是公司内部局域网才能够访问,可是prod环境是全部只要能链接上互联网的用户均可以访问,没有网络的限制问题,并且prod环境是面向用户,因此通常服务器的性能都会比test环境高的多。架构

 

2、实际应用app

重点来了,介绍了这么多的环境,那咱们在开发过程当中怎么进行环境配置呢,在服务器上面又是如何进行环境的区别的呢,不要着急,下面咱们一一来介绍一下。性能

1.开发过程配置

SpringBoot项目自己就支持不一样环境引用的支持,咱们只须要在spring.profiles.active=‘环境的名称’,这样说可能会比较抽象,咱们来看一下具体的列子,以下所示:

不一样的配置文件必须开头是application-,结尾能够随意定义,这边咱们用dev、test、prod分别来表示开发、测试、生产环境。而后咱们在引用环境的时候只要在active后面加上相应的后缀就能够了(也就是application-后面的内容),经过这种方式咱们在开发过程当中就能够随意的进行不一样环境的切换了。

2.jar方式配置

那有的同窗会问,若是咱们是以jar形式来启动SpringBoot项目呢,这个时候咱们该怎么办呢。不要着急,SpringBoot早就想到这一点了,它支持经过jar后面追加命令的方式启动服务。好比咱们要启动jar服务,而后将环境配置设置为test环境,咱们就能够经过以下的命令来实现。

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

总结:

SpringBoot为咱们提供了超级简单的不一样环境配置方案,咱们只须要写上符合SpringBoot规范的配置文件就能够实现不一样环境的切换了,这边有几点你们须要注意一下,也是在搭建过程当中遇到的坑。

坑:

一、配置文件是没办法进行屡次继承引用的,简单的所就是application.yml能够引用application-a.yml,可是application-a.yml是没办法经过spring.profiles.active=‘环境的名称’来引用application-b.yml。

二、在经过jar启动服务的时候,要特别注意一点的是, --spring.profiles.active=test必须放在第一个位置,由于Spring Boot项目全部的配置信息均可以经过外部传参的形式来改变,这也就意味着能够有传多个参数,可是咱们第一个参数必须是spring.profiles.active,不然配置不会被替换。

三、dev、test、prod的配置文件名称必定要符合"application-名称"规范,不然会形成引用失败。

要更多干货、技术猛料的孩子,快点拿起手机扫码关注我,我在这里等你哦~