springboot设置多环境配置文件

 更新时间:2025年12月01日 10:54:39   作者:w***7440  
本文介绍了在Spring Boot项目中配置多个环境(如dev、test、prod)的方法,可以通过创建多个`.yml`文件来实现,每个文件对应一个环境,并在`application.yml`中指定激活的配置文件,感兴趣的朋友跟随小编一起看看吧

实际开发过程中会涉及多个环境,比如dev(开发环境),test(测试环境),prod(线上环境),不同环境下,端口号、数据库地址、redis地址等等会不尽相同,为了避免每次上线到不同环境都要修改配置文件可以在项目中配置多个配置文件,需要哪个激活哪个。

简单使用,不涉及过多讲解

实现方法(以.yml为例):

方法一:创建多个.yml文件

在项目中创建三个.yml文件,分别是

application-dev.yml、application-test.yml、application-prod.yml

application-dev.yml (包含稍微多一些的配置,以防后面忘了咋配可以看一下)

server:
  port: 8081
  servlet:
    context-path: "/admin" #修改项目访问路径 ,默认是 /
spring:
  application:
    name: volcano-admin
  #mysql
  datasource:
    url: jdbc:mysql://localhost:3306/volcano?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  #redis
  redis:
    host: 127.0.0.1
    port: 6379
# mybatis
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.passion.volcanoadmin.entity

application-prod.yml(简单配置,区分dev和pro环境,就用端口号prot不同体现了)

server:
  context-path: /admin
  port: 8082

lapplication-test.yml(简单配置,区分dev和test环境,就用端口号prot不同体现了)

server:
  context-path: /admin
  port: 8083

在application.yml中激活要使用的配置文件

application.yml

#激活不同环境的配置文件
spring:
  profiles:
    active: dev

激活的是dev环境,所以项目启动时会读取application-dev.yml,使用的是8081的端口号

方法二:一个文件中使用“—”分隔符分割不同环境的配置,每个块中指定 使用profile: dev指定环境

application.yml

server:
  port: 8089
  servlet:
    context-path: "/admin" #修改项目访问路径 ,默认是 /
  profile: dev
---
server:
  port: 8088
  profile: test
---
server:
  port: 8087
  profile: prod
spring:
  application:
    name: volcano-admin
  #mysql
  datasource:
    url: jdbc:mysql://localhost:3306/volcano?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
---
#激活不同环境的配置文件
spring:
  profiles:
    active: prod

激活的是prod,此时读的是profile: profile的块,所以端口号是8087

配置文件的激活方式

配置文件的激活方式有四种

  1. 在配置文件中激活(上面的例子就是)
  2. 在虚拟机参数中指定激活 (VM options 和 program arguments两种方式)
  3. 使用命令行运行是指定

具体如何操作:

1、在配置文件中激活,上面的实例就是使用的这种方式

在application.yml中指定

#激活不同环境的配置文件
spring:
  profiles:
    active: prod

2、虚拟机的参数中指定

2.1 VM options

点开之后会有一个 “VM options”的框,根据idea版本不同可能会有所不同。如果没有可以点击“Modify options” 下拉框中会有“VM options”,选择后“VM options”框就会出来,配置上

“-Dspring.profiles.active=test" 即可,此时激活的是test环境

(说明:我本机使用的时三个配置文件的方式,所以dev的port是8081,prod的port是8082,test的port是8083)启动项目:

2.2program arguments

同2上的位置,可以找到“program arguments”的框,如果没有就是“Modify options”下拉框中找。配置上“–spring.profiles.active=prod”,此时激活的是prod环境(我本机设置的pror是8082),启动项目:

3、运行是指定运行环境

运行jar包的命令是 jave -jar xxx.jar,如果要指定运行环境在后面加上–spring.profiles.active=dev

即:java -jar xxx.jar–spring.profiles.active=dev

顺便说一下jave打包,

可以使用idea 右侧MAVEN —— package进行打包,这种方式打包到当前项目的target文件夹下。也可以使用mvn install进行打包,这种方式会打包到maven setting.xml配置的仓库中

到此这篇关于springboot设置多环境配置文件的文章就介绍到这了,更多相关springboot多环境配置文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringCloud消息总线Bus配置中心实现过程解析

    SpringCloud消息总线Bus配置中心实现过程解析

    这篇文章主要介绍了SpringCloud消息总线Bus配置中心实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • JAVA日常开发中读写XML的方法详解

    JAVA日常开发中读写XML的方法详解

    这篇文章主要介绍了JAVA日常开发中读写XML的相关资料,详细讲解了在Java中如何使用DOM(文档对象模型)和SAX(简单API for XML)两种方式读取XML文件,以及如何使用DOM和JAXB(Java Architecture for XML Binding)两种方式写入XML文件,需要的朋友可以参考下
    2024-12-12
  • 判断List和Map是否相等并合并List中相同的Map

    判断List和Map是否相等并合并List中相同的Map

    今天小编就为大家分享一篇关于判断List和Map是否相等并合并List中相同的Map,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java 泛型总结(二):泛型与数组

    Java 泛型总结(二):泛型与数组

    数组与泛型的关系还是有点复杂的,Java 中不允许直接创建泛型数组。本文分析了其中原因并且总结了一些创建泛型数组的方式。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java中的@Async异步功能详解

    Java中的@Async异步功能详解

    这篇文章主要介绍了Java中的@Async异步功能详解,@Async注解,可以实现异步处理的功能,它可以有返回值,或者直接在新线程时并行执行一个任务,对于异步来说,它的执行是有条件的,你需要把异步代码块放在单独的类里,需要的朋友可以参考下
    2023-11-11
  • 详解Java synchronized关键字的用法

    详解Java synchronized关键字的用法

    在多线程编程中常常使用锁机制来确保同一时刻只有一个线程能够修改共享内存,在Java中一般是使用synchronized作为锁机制,下面就让我们来学习一下如何使用synchronized实现线程安全吧
    2023-08-08
  • 关于Java Interface接口的简单练习题

    关于Java Interface接口的简单练习题

    这篇文章主要给大家分享的是关于Java Interface接口的简单练习题,难度不算大,但是要有一个清晰的逻辑建立接口和链接Java类。下面来看看文章的详细介绍吧,需要的朋友可以参考一下
    2021-11-11
  • Spring Boot实现自动发送邮件

    Spring Boot实现自动发送邮件

    这篇文章主要为大家详细介绍了Spring Boot实现自动发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 在Spring中如何注入动态代理Bean

    在Spring中如何注入动态代理Bean

    这篇文章主要介绍了在Spring中如何注入动态代理Bean问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • 简单实现Spring的IOC原理详解

    简单实现Spring的IOC原理详解

    这篇文章主要介绍了简单实现Spring的IOC原理详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12

最新评论