springboot启动时如何指定spring.profiles.active

 更新时间:2023年04月10日 16:55:32   作者:jmlqqs  
这篇文章主要介绍了springboot启动时如何指定spring.profiles.active问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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。

参考资料:https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/maven-plugin/examples/run-profiles.html

如果使用命令行直接运行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激活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应用都会采用该配置),当然也可以采用优先级替换的规则进行单独指定。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring HTTP缓存应用场景举例

    Spring HTTP缓存应用场景举例

    这篇文章详细介绍了Spring Framework中HTTP缓存的基本概念和实现方式,包括Cache-Control头、条件请求(ETag/Last-Modified)、CacheControl类的使用,以及在控制器和静态资源中应用HTTP缓存,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-11-11
  • java理论基础Stream API终端操作示例解析

    java理论基础Stream API终端操作示例解析

    这篇文章主要为大家介绍了java理论基础Stream API终端操作示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • springboot mybatis里localdatetime序列化问题的解决

    springboot mybatis里localdatetime序列化问题的解决

    这篇文章主要介绍了springboot mybatis里localdatetime序列化问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • eclipse创建java项目并运行的详细教程讲解

    eclipse创建java项目并运行的详细教程讲解

    eclipse是java开发的ide工具,是大部分java开发人员的首选开发工具,可是对于一些新Java人员来说,不清楚eclipse怎么运行项目?这篇文章主要给大家介绍了关于eclipse创建java项目并运行的相关资料,需要的朋友可以参考下
    2023-04-04
  • jpa多条件查询重写Specification的toPredicate方法

    jpa多条件查询重写Specification的toPredicate方法

    这篇文章主要介绍了多条件查询重写Specification的toPredicate方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java实现验证码验证功能

    Java实现验证码验证功能

    Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢?今天通过本文给大家实例详解,需要的朋友参考下
    2017-02-02
  • 解决springboot bean中大写的字段返回变成小写的问题

    解决springboot bean中大写的字段返回变成小写的问题

    这篇文章主要介绍了解决springboot bean中大写的字段返回变成小写的问题,具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 从零带你手写Java七种负载均衡算法实现方案

    从零带你手写Java七种负载均衡算法实现方案

    在分布式系统,微服务架构以及高并发场景中,负载均衡是一项至关重要的技术本文将带你纯手写实现七种常见的负载均衡算法,全部使用 Java 编写,不依赖任何第三方框架,帮助你深入理解其核心原理与适用场景
    2026-02-02
  • maven中springboot-maven-plugin的5种打包方式

    maven中springboot-maven-plugin的5种打包方式

    本文主要介绍了maven中springboot-maven-plugin的5种打包方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • springboot2中session超时,退到登录页面方式

    springboot2中session超时,退到登录页面方式

    这篇文章主要介绍了springboot2中session超时,退到登录页面方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论