• SpringBoot激活profiles的几种方式


    多环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件。

    激活的profiles要在项目内创建对应的配置文件,格式为application-{profile}.yml

    一、命令行方式

    命令一:运行时指定,使用--spring.profiles.active

    命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过--spring.profiles.active=test 的方式进行激活指定的profiles列表。

    使用方式如下所示:

    java -jar xx-v1.0.jar --spring.profiles.active=dev --server.port=8080 &> xx.log &
    

    命令二:打包时指定,使用 mvn -P

    @profileActive@ 是配合 maven profile 进行选择不同配置文件进行开发

    第一步:在 application.properties 中配置

    spring.profiles.active=@profileActive@

    第二步:在pom 中配置

    1. <id>dev
    2. dev
    3. <id>prod
    4. prod

     第三步:打包命令

    mvn package -P prod -DskipTests
    

     个人不喜欢这种方式,麻烦。建议使用“命令一”的方式。

    二、系统变量方式

    Mac/Linux系统配置环境变量

    编辑环境变量配置文件/etc/profile,添加名为SPRING_PROFILES_ACTIVE的环境变量,如下所示:

    export SPRING_PROFILES_ACTIVE=dev
    

    Windows系统配置环境变量

    环境变量的配置方式请参考Java环境变量配置,新建一个名为SPRING_PROFILES_ACTIVE的系统环境变量,设置变量的值为dev即可。

    在配置文件中读取环境变量,如下:

    ${SPRING_PROFILES_ACTIVE:dev}

    三、配置文件方式

    配置文件方式是最常用的方式,不过灵活性不强,局限性比较大,不建议使用这种方式来激活配置文件。

    我们只需要在application.yml配置文件添加配置即可,使用方式如下所示:

    1. spring:
    2. profiles:
    3. active: dev

    四、Java系统属性方式

    Java系统属性方式也是一种外部配置的方式,在执行java -jar命令时可以通过-Dspring.profiles.active=test的方式进行激活指定的profiles列表。

    使用方式如下所示:

    java -Dspring.profiles.active=dev -jar xx-v1.0.jar &> xx.log &
    

    注意:-D方式设置Java系统属性要在-jar定义。

     五、补充说明

    5.1 优先级

    命令行方式 > Java系统属性方式 > 系统变量方式 > 配置文件方式

    经过测试"命令行方式"的优先级最高,而"内部配置文件方式"则是最低的。

    5.2 激活多个profile

    如果需要激活多个profile可以使用逗号隔开,如:

    --spring.profiles.active=dev,test

    最后,建议大家在“生产环境”使用“命令行” 或 “系统环境变量"的方式来激活指定profile的配置。同样,端口也建议使用这两种方式来指定。

  • 相关阅读:
    下半年软考报名时间发布,你准备好了吗?
    【国产MCU】-CH32V307-独立看门狗(IWDG)
    护眼台灯哪个牌子好?目前比较好用的护眼台灯款式推荐
    macbook 从0开始下载git/nvm
    看界面控件DevExpress WinForms——如何自定义辅助功能属性(下)
    一次违法网站的渗透经历
    大学生能参加哪些比赛你都知道吗? (适合各个专业)了解 还是 错过 ?
    笔记本电脑Windows10安装
    卷积神经网络 - 图像卷积
    ARP欺骗攻击
  • 原文地址:https://blog.csdn.net/feng88724/article/details/131142134