springboot配置多环境的实战

457 阅读1分钟

两种方式

  • 打包指定环境
  • maven集成环境,打包指定
  1. 打包指定环境

     application.properties
    
     application-dev.properties
     
     application-test.properties
     
     application-prod.properties
     
    

在application.properties文件中指定,内容如下:

    spring.profiles.active=test

运行 jar 的时候指定(线上配置这样的参数)

Spring Boot内置的环境切换能够在运行Jar包的时候指定环境,命令如下:

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

2. maven集成环境,打包指定

在application.properties文件中这样配置

需要将Maven激活的环境作用于Spring Boot,实际还是利用了spring.profiles.active这个属性,只是现在这个属性的取值将是取值于Maven。配置如下:

spring:
  profiles:
    active: @profile.active@

profile.active实际上就是一个变量,在maven打包的时候指定的-P test传入的就是值。

pom 文件中定义 profiles

<!--定义三种开发环境-->
<profiles>
    <profile>
        <!--不同环境的唯一id-->
        <id>dev</id>

        <properties>
            <!--profile.active对应application.yml中的@profile.active@-->
            <profile.active>dev</profile.active>
        </properties>
    </profile>

    <!--测试环境-->
    <profile>
        <id>test</id>
        <activation>
            <!--默认激活开发环境-->
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <profile.active>test</profile.active>
        </properties>
    </profile>

    <!--生产环境-->
    <profile>
        <id>prod</id>
        <properties>
            <profile.active>prod</profile.active>
        </properties>
    </profile>
</profiles>