手记-如何用profiles区分不同环境的配置

(转载请注明作者和出处‘https://fourthringroad.com/’,请勿用于任何商业用途)

常用的两种方式:

依赖SpringBoot

springboot 的配置文件设计成application-{profile}.yml(properties),其中profile可根据不同的环境而不同,dev, beta, gamma, stag(uat), prod 等等。

并在application.yml中指定生效的profile即可

spring:
  profiles:
    active: prod

如上,则生效的配置文件为applicaiton-prod.yml

如何动态指定:

  1. jvm参数:-Dspring.profiles.active=prod
  2. @profile注解,加在bean上则只有指定profile生效时才会被初始化
  3. 配置文件设定成${profiles.active},通过mvn clean package -P prod命令来替换

依赖maven

在pom文件中可以有profiles的配置

<profiles>
    <profile>
        <id>local</id>
        <properties>
            <foo>123</foo>
            <bar>456</bar>
        </properties>
    </profile>
</profiles>

这样${foo},${bar}变量会根据profile的不同而变化,实现灵活的配置。

同时还可以在<resource>标签中指定打包哪个资源文件 – src/main/resource/${profiles.active}

或者在<build>中指定filter,include哪些文件- src/…/application-${profiles.active}.properties

如何动态指定:

  1. mvn clean package -P prod
  2. 可以根据os,env,文件是否存在等条件设定自动生效的profile
  3. maven的settings.xml里面可以指定生效的profile是哪个-activeProfile

整合SpringBoot和Maven

用maven pom中profiles下的变量去代替application.yml, application-stag.yml, bootstrap.yml 等文件中的值

此条目发表在软件工程分类目录。将固定链接加入收藏夹。

手记-如何用profiles区分不同环境的配置》有1条回应

  1. Robertanoke说:

    Арматура диаметром 32 мм, изготовленная из стали марки А500С, является одним из самых востребованных видов металлопроката в строительстве. Она применяется при возведении фундаментов, армировании стен и перемычек. https://armatura32.ru

发表评论

您的电子邮箱地址不会被公开。