• 如何在调试、编译或运行spring boot时,来实现切换不同的运行环境


    1、首先创建properties文件或yml文件,命名参考如下,application-dev.properties、application-qa.properties、application-prod.properties分别代表开发、测试、生产环境的配置,然后还要创建一个application.properties用来控制切换环境

     

    2、application.properties内容如下,代表选取当前生效的环境:

    spring.profiles.active=@activatedProperties@

    @activatedProperties@代表引用pom.xml中配置的值

     

    3、配置pom.xml文件内容如下,一般会有多个<activatedProperties>代表不同的环境,那么其中<activeByDefault>true</activeByDefault>代表那个环境默认生效,下图代表dev环境生效:

     1     <!-- 打包的不同profile -->
     2      <profiles>
     3         <profile>
     4             <id>dev</id>
     5             <properties>
     6                 <activatedProperties>dev</activatedProperties>
     7             </properties>
     8              <activation>
     9                 <!-- 默认环境 -->
    10                 <activeByDefault>true</activeByDefault>
    11             </activation>
    12  
    13         </profile>
    14         
    15         <profile>
    16             <id>qa</id>
    17             <properties>
    18                 <!-- 环境标识,需要与配置文件的名称相对应 -->
    19                 <activatedProperties>qa</activatedProperties>
    20             </properties>
    21         </profile>
    22         
    23         <profile>
    24             <id>prod</id>
    25             <properties>
    26                 <activatedProperties>prod</activatedProperties>
    27             </properties>
    28         </profile>
    29     </profiles>

    4、你有可能想,我如果想在打包的时候动态控制生成某个环境的包要怎么办?通过如下命令可以控制,-P参数后边跟对应的运行环境:
    mvn clean install -P prod

    prod就是代表打包默认activatedProperties,设置为prod生产环境的意思

    5、你还可能想在打包的时候不指定运行环境,在运行的时候来指定运行环境,这样也可以,通过如下命令来运行spring boot jar包:

    java -Dspring.profiles.active=qa -jar springboot-profiles-1.0-SNAPSHOT.jar

    注意-Dspring.profiles.active=qa,代表在启动jar包时,指定activatedProperties为qa生产环境

    6、如何判断当前启动的包是什么环境的包呢?通过启动时,spring打印的日志可以看出来

    The following profiles are active: prod 代表启动时生效的环境是prod环境

    参考连接

    pom.xml配置,针对mvn clean install -P参数(环境参数)打包

    使用Profiles

    spring boot : spring.profiles.active来解决多个profile的问题

    maven profile动态选择配置文件

     

  • 相关阅读:
    Ros与Vrep平台搭建
    场景采集难点
    写给师弟师妹论文排版秘籍
    采集项目笔记2
    采集项目记录1
    NLP&Python笔记——nltk模块基础操作
    Hash算法(含python实现)
    Python学习笔记——Socket通信
    Python学习笔记——GIF倒放处理
    OSError: [WinError 126] 找不到指定的模块 —— 解决办法
  • 原文地址:https://www.cnblogs.com/Rocky_/p/15576238.html
Copyright © 2020-2023  润新知