文章目录
- 一、前言
- 二、如何使用profile多环境配置
- 2.1、编写各环境的配置文件
- 2.2、如何让配置文件生效
- 三、结合Maven使用
一、前言
我们在开发项目的过程中,会遇到需要使用多套环境配置的情况,因为不同环境可能存在不同的配置,比如数据库连接等等,这时候就可以用 profile 来解决
二、如何使用profile多环境配置
2.1、编写各环境的配置文件
我们知道配置文件支持很多格式,这里以 yml 为例,一般来说我们的配置文件会存放在 src/main/resources 目录下,命名为 application.yml,而 profile 需要我们通过不同的命名来区分不同的环境配置,格式为:application-{profile}.yml,举个例子开发环境可以叫:application-dev.yml,测试环境可以叫:application-test.yml,生产环境可以叫:application-pro.yml,我们可以保留住原本的 application.yml 文件,用来放置一些所有环境相同的配置,把不同的配置放置在各自的配置文件里,列个表格:
文件名 | 说明 |
---|---|
application.yml | 存放各环境相同的配置,如端口号等 |
application-dev.yml | 存放开发环境的配置,如mysql、redis、mongo等 |
application-test.yml | 存放测试环境的配置,如mysql、redis、mongo等 |
application-pro.yml | 存放生产环境的配置,如mysql、redis、mongo等 |
2.2、如何让配置文件生效
只需要在启动项目的时候增加参数 --spring.profiles.active=dev 就可以指定环境
在 IDEA 中,可以在 Environment variables 里填上 spring.profiles.active=dev 就可以了
如果是 SpringBoot 在 Active profiles 里填上 dev 也可以达到一样的效果
当然也可以在 application.yml 文件中设置 spring.profiles.active 参数
三、结合Maven使用
而在 IDEA 中还有个更快速的方式,因为 maven 有一个关于 profile 的配置,而 IDEA 里有专门的 maven 窗口可以用来切换,怎么操作呢?首先在 pom.xml 文件里添加如下代码
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
这里设置了默认是 dev,我这边自定义了一个 env 标签,你也可以按自己的需要去定义,这个标签有什么呢,刚才上面我们有说过可以在 application.yml 文件中设置 spring.profiles.active 参数,这时候我们可以把这个参数改成 @env@,具体如下:
之后就可以在 IDEA 里的 maven 窗口里勾选切换环境了,切换之后重新 import 就可以了