SpringBoot中profile的使用与切换

一、profile是什么

其实,早在Spring3.1版本时,profile已经出来了。所以,我需要知道的是profile是什么为什么使用它并且知道如何使用它。profile 可以让 Spring 对不同的环境提供不同配置的功能,可以通过**、指定参数等方式快速切换环境。 换句话说,就是我们需要在不同的场景下使用不同的配置,profile的出现就是要解决我们多环境下切换配置复杂的问题。

二、为什么要使用profile

在实际开发环境中,我们存在开发环境的配置,部署环境的配置,测试环境的配置等等,里面的配置信息很多时,例如:端口、上下文路径、数据库配置等等,若每次切换环境时,我们都需要进行修改这些配置信息时,会比较麻烦,profile的出现就是为了解决这个问题。下面,我们就来举例实际了解一下profile到底怎么玩。

三、如何使用profile

在举例之前,我需要先介绍一下,Spring官方给出的语法规则是application-{profile}.properties(.yaml/.yml)。

1.创建一个SpringBoot项目,在resource下可以找到application.properties文件,如下图所示:
SpringBoot中profile的使用与切换
2.如果需要创建自定义的的properties文件时,可以用application-xxx.properties的命名方式,这也是官方提供的,其中xxx可以根据自己的需求来定义。根据实际情况,我创建了一个开发环境下使用的properties文件和一个生产环境下使用的properties文件,其中只对端口进行了配置,如下图所示:
a.开发环境如下:
SpringBoot中profile的使用与切换
b.生产环境如下:
SpringBoot中profile的使用与切换
3.若我们需要在两种环境下进行切换,只需要在application.properties中加入如下内容即可。
SpringBoot中profile的使用与切换
注:根据spring.profiles.active=prod就可以知道prod其实就是举例之前上面提到的xxx。
同理,xxx.yaml(xxx.yml)文件也是相同用法,两种文件只是语法上的不同,使用方式是相同的。 若不懂yaml文件的语法,可以参考我的上一篇文章yaml和properties文件的区别
所以,大家看明白这是怎么回事了吗?是不是很简单,可以写一个demo自己试试,若有不足之处,欢迎大家在评论中进行指正,共勉。