springboot Idea 开发 测试 生产 多环境配置及打包

我们的项目在开发环境、生产环境,不同的环境下会有不同的配置。比如访问服务的端口,数据库的配置等。如果每次切换环境或发布时都去修改这些配置的值,不仅麻烦而且很容易出错。
那该怎么办呢?
能不能通过不同的环境,加载不同的配置呢?

解决方法:

方法一:增加多配置文件,不同环境时,读取不同配置

1、根据环境,增加不同的配置文件,具体如下图:

在这里插入图片描述
具体配置内容类似 application.yml,根据不同环境,设置不同服务器,端口等

2、删除application.yml内容,增加环境配置

spring:
  profiles:
    active: dev

这样,我们切换环境和打包时,只需要修改application.yml即可。

不过每次还是需要更改application.yml,还是有些麻烦,我们可以通过下面进阶版处理

方法二:通过profiles动态配置环境

1、根据环境,增加不同的配置文件,具体如下图:
在这里插入图片描述

2、修改pom.xml,设置配置环境profiles(多模块工程时,在启动模块pom中修改),与bulid平级

<profiles>
        <profile>
            <id>dev</id>
            <properties>
                <!-- 环境标识,需要与配置文件的名称相对应 -->
                <activatedProperties>dev</activatedProperties>
            </properties>
            <activation>
                <!-- 默认环境 -->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <activatedProperties>test</activatedProperties>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <activatedProperties>prod</activatedProperties>
            </properties>
        </profile>
    </profiles>

3、设置application.yml内容,动态指定启动环境

spring:
  profiles:
    active: @activatedProperties@

注: @activatedProperties@ 中内如必须与 profile=>properties=> activatedProperties节点一致

4、选择启动环境

在这里插入图片描述
5、指定环境打包

通过命令,指定打包环境打包

clean package -P prod

打包完成,可查看 target\classes 中 application.yml 是否是指定环境

spring:
  profiles:
    active: prod

猜你喜欢

转载自blog.csdn.net/weixin_41003771/article/details/115114750