SpringBoot多环境配置完整过程记录

 更新时间:2026年02月06日 11:00:03   作者:青衫码上行  
SpringBoot多环境配置方案SpringBoot是一个基于Java的框架,提供了多环境配置方案,以便于在不同的环境中灵活应用,这篇文章主要介绍了SpringBoot多环境配置的相关资料,需要的朋友可以参考下

多环境开发

引入:开一家奶茶店的故事

假如你要开一家网红奶茶店,从筹备到营业,你会经历这几个阶段:

  1. 工地装修期(开发环境)
     你在毛坯店里敲敲打打、试装水电、调整位置。这时候你可以随意改动,打翻油漆、钻错孔都没关系,反正还没客人。
     对应到项目里,这就是开发环境——你可以随便改代码、删测试数据、打印调试日志,不怕影响用户

  2. 试营业样板间(测试环境)
     装修完成后,你邀请亲朋好友来试喝:用和正式开业一样的设备、原料、菜单,模拟真实订单流程,看看奶茶好不好喝、出餐效率够不够、收银系统稳不稳定。
     对应到项目里,这就是测试环境——用生产脱敏数据、接近生产的配置,让专门的测试人员验证功能,提前发现问题

  3. 正式营业(生产环境)
     一切准备就绪,开门迎客。这时候你必须保证:原料新鲜、设备稳定、出餐高效,不能再像试营业时那样随便调整配方,更不能让客人喝到“调试版”奶茶。
     对应到项目里,这就是生产环境——面向真实用户,要求绝对稳定、安全,日志只打关键错误,功能不能随意改动。

如果跳过“试营业”直接开业,你可能会遇到:菜单打印错误、收银系统崩溃、奶茶口味不稳定等等一系列本可以轻易排除的问题

一、什么是多环境?

多环境 就是为软件项目在不同阶段(开发、测试、上线)提供独立的“运行容器”(将所需资源和项目本身部署到不同的机器上),每个容器拥有专属的配置、数据和运行规则,彼此完全隔离互不影响

二、为什么要搞多环境?

1. 隔离风险:避免“本地好的,线上炸了”

  • 数据隔离:开发时可以随意删改测试数据,不会影响生产环境的真实用户数据;
  • 配置隔离:开发环境开启调试日志、热部署,生产环境关闭调试、开启性能优化,避免配置混乱;
  • 功能隔离:新功能先在开发/测试环境验证,没问题再上线,避免直接影响用户。

2. 提升效率

  • 开发:专注功能开发,不用关心线上配置和数据;
  • 测试:在接近生产的环境验证功能,发现的Bug更贴近真实场景;
  • 运维:稳定部署和维护生产环境,不用处理开发/测试环境的临时问题。

3. 保障稳定:提前发现生产级问题

  • 测试环境用生产脱敏数据(如10万条用户数据),可以提前发现性能问题(如慢SQL、接口超时);
  • 预发布环境1:1复制生产配置,上线前做最后验证,避免直接炸生产。

三、多环境的种类 

基础三环境

环境名称英文标识奶茶店类比关键特点
开发环境dev工地装修期数据可随意删改、日志全开、支持热部署
测试环境test试营业样板间数据是脱敏生产副本、配置接近生产、定期重置
生产环境prod正式营业数据绝对安全、日志极简、性能优先

扩展五环境(复杂项目需要)

在三环境基础上增加两个阶段,进一步降低风险:

  • 预发布环境(pre):正式开业前的「压力测试」,用真实设备和原料模拟高峰时段,验证出餐效率;
  • 演示环境(demo):给投资人/加盟商看的「品牌旗舰店」,装修精美、数据美化,功能稳定。

四、应用:Spring Boot 多环境配置

1. 配置文件分类

src/main/resources 目录下创建以下文件,命名遵循 Spring Boot 官方规范:

  • application.yml:主配置文件(激活环境、公共配置)
  • application-dev.yml:开发环境配置
  • application-test.yml:测试环境配置
  • application-prod.yml:生产环境配置

2. 核心配置示例

主配置文件application.yml

spring:
  application:
    name: milk-tea-shop
  profiles:
    active: dev # 默认激活开发环境(工地模式)

开发环境application-dev.yml

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dev_milk_tea
    username: root
    password: root
logging:
  level:
    root: debug # 调试日志

生产环境application-prod.yml

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://prod-db:3306/prod_milk_tea
    username: ${DB_USERNAME} # 环境变量读取敏感信息
    password: ${DB_PASSWORD}
logging:
  level:
    root: warn # 只打印警告/错误

3. 激活环境的3种方式

  1. 配置文件指定:修改 application.yml 中的 spring.profiles.active=prod
  2. 命令行指定java -jar milk-tea-shop.jar --spring.profiles.active=prod(可以用maven里的package指令打成 jar包 后操作)
  3. IDE指定:在启动配置的 Program arguments 中添加 --spring.profiles.active=dev

总结

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

相关文章

  • springboot多模块化整合mybatis,mapper自动注入失败问题及解决

    springboot多模块化整合mybatis,mapper自动注入失败问题及解决

    这篇文章主要介绍了springboot多模块化整合mybatis,mapper自动注入失败问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 一文秒懂Java enum常见的用法讲解

    一文秒懂Java enum常见的用法讲解

    这篇文章主要介绍了一文秒懂Java enum常见的用法讲解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 用Java代码实现一幅春联详解

    用Java代码实现一幅春联详解

    大家好,本篇文章主要讲的是用Java代码实现一幅春联详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Java的作业调度类库Quartz基本使用指南

    Java的作业调度类库Quartz基本使用指南

    这篇文章主要介绍了Java的作业调度类库Quartz基本使用指南,Quartz能够让类按照指定的计划顺序执行,需要的朋友可以参考下
    2016-03-03
  • springboot整合rabbitmq实现订单超时取消案例分析

    springboot整合rabbitmq实现订单超时取消案例分析

    本文介绍了如何使用SpringBoot和RabbitMQ实现订单超时取消功能,通过配置TTL队列和死信交换机,可以管理订单的超时逻辑,实际应用中,可以通过数据库标记订单状态或手动确认机制来防止订单被错误取消
    2025-01-01
  • Java 关键字break和continue的使用说明

    Java 关键字break和continue的使用说明

    这篇文章主要介绍了Java 关键字break和continue的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 基于EasyExcel实现百万级数据导入导出详解

    基于EasyExcel实现百万级数据导入导出详解

    大数据的导入和导出,相信大家在日常的开发、面试中都会遇到。本文将为大家详细介绍一下如何利用EasyExcel实现百万级数据导入导出,需要的可以参考一下
    2023-01-01
  • redisson.tryLock()参数的使用及理解

    redisson.tryLock()参数的使用及理解

    这篇文章主要介绍了redisson.tryLock()参数的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • java中Locks的使用详解

    java中Locks的使用详解

    这篇文章主要介绍了java中Locks的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • java中Servlet监听器的工作原理及示例详解

    java中Servlet监听器的工作原理及示例详解

    这篇文章主要介绍了java中Servlet监听器的工作原理及示例详解。Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。感兴趣的可以来了解一下
    2020-07-07

最新评论