首页 > Java > java教程 > springboot启动时怎么指定spring.profiles.active

springboot启动时怎么指定spring.profiles.active

王林
发布: 2023-05-12 22:49:04
转载
3945 人浏览过

    springboot启动指定spring.profiles.active

    Maven启动指定Profile通过-P,

    如mvn spring-boot:run -Ptest

    但这是Maven的Profile。

    如果要指定spring-boot的spring.profiles.active,

    • spring-boot 1.x 使用mvn spring-boot:run -Drun.profiles=test,

    • spring-boot 2.x 使用mvn spring-boot:run -Dspring-boot.run.profiles=test。

    如果使用命令行直接运行jar文件,则使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar

    如果使用开发工具,运行Application.java文件启动,

    则增加参数- -spring.profiles.active=test

    同时要注意启动不生效的问题:

    在linux centos 7 系统,发布jar包

    nohup java -Xmx256m -jar xxxx --spring.profiles.active=prod &
    登录后复制

    每次启动都是启动的是测试环境

    最后各种排查,最终发现了,启动类没有传入参数 args

    springboot启动时怎么指定spring.profiles.active

    SpringBoot激活profiles你知道几种方式

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

    激活Profiles的方式

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

    1、命令行方式

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

    使用方式如下所示:

    java -jar order-service-v1.0.jar --spring.profiles.active=dev &> order-service.log &
    登录后复制

    系统变量方式

    1、Mac/Linux系统配置环境变量

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

    spring 环境激活

    export SPRING_PROFILES_ACTIVE=dev
    登录后复制

    2、Windows系统配置环境变量

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

    系统变量的方式适用于系统下所部署统一环境的SpringBoot应用程序,如统一部署的都是prod环境的应用程序。

    Java系统属性方式

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

    使用方式如下所示:

    java -Dspring.profiles.active=dev -jar order-service-v1.0.jar &> order-service.log &
    登录后复制

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

    配置文件方式

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

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

    spring:
      profiles:
        # 激活profiles
        active: dev
    登录后复制

    优先级

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

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

    激活多个profile

    如果需要激活多个profile可以使用逗号隔开,如:- -spring.profiles.active=dev,test

    敲黑板划重点

    每一个应用项目都会用到大量的配置文件或者外部配置中心,而配置信息的激活是必不可少的一步,尤为重要。

    建议大家使用系统环境变量的方式来激活指定profile的配置,这种方式比较简单,系统全局都可以使用(注意:系统全局代表着该系统下所运行的全部SpringBoot应用都会采用该配置),当然也可以采用优先级替换的规则进行单独指定。

    以上是springboot启动时怎么指定spring.profiles.active的详细内容。更多信息请关注PHP中文网其他相关文章!

    来源:yisu.com
    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板