SpringBoot多环境开发

简介: SpringBoot多环境开发

在这里插入图片描述

🍁博客主页:👉不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉SpringBoot专栏(每日更新)
✨如果觉得博主的文章还不错的话,请三连支持一下博主。
🔥欢迎大佬指正,一起学习!一起加油!

在这里插入图片描述


日常开发中至少有三个环境,分别是开发环境(dev),测试环境(test),生产环境(prod),不同的环境的各种配置都不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数。

🍁多环境开发(yaml版)

🔥新建一个模板
🔥编写yml文件

# 应用名称
spring:
  profiles:
    active: test
---
#设置环境
#生产环境
spring:
  profiles: pro
server:
  port: 80
---
#开发环境
spring:
  profiles: dev
server:
  port: 81

---
#测试环境
spring:
  profiles:
    active:
      on-profie: test
server:
  port: 82

🔥运行测试
在这里插入图片描述

⭐⭐⭐注意:

  • active: test用来区分环境。
  • profile属性过时了,要用group格式
spring:
  profiles:
    active:
      on-profie: test
server:
  port: 82
  • 启动指定环境
spring:
  profiles:
    active: test
  • 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境
  • yaml格式中设置多环境使用---区分环境设置边界
  • 每种环境的区别在于加载的配置属性不同
  • 启用某种环境时需要指定启动时使用该环境

🍁多环境开发(yaml版)多配置文件格式

🔥主启动配置文件

application.yml

spring:
  profiles:
    active: test

🔥环境分类配置文件

application-pro.yml

server:
  port: 8082

application-dev.yml

server:
  port: 8081

application-test.yml

server:
  port: 8083

测试:
在这里插入图片描述
⭐⭐⭐注意:

  • 主配置文件中设置公共配置(全局)
  • 环境分类配置文件中用于设置冲突属性(局部)

🍁多环境开发(properties版)多配置文件格式

⭐⭐⭐注意:格式与yaml一致。

🔥主启动配置文件

application.properties

spring.profiles.active=pro

🔥环境分类配置文件

application-pro.properties

server.port=92

application-dev.properties

server.port=91

application-test.properties

server.port=93

测试:
在这里插入图片描述

🍁多环境开发独立配置

  • 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下

🔥application-dev.yml

server:
  port: 80

🔥application-devDB.yml

server:
  port: 81

🔥application-devMVC.yml

server:
  servlet:
    context-path: /ebank
  port: 82
  • 使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔

🔥application.yml

spring:
  profiles:
    active: dev
    include: devDB,devMVC

⭐⭐⭐注意:当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效。

🔥测试
在这里插入图片描述

🍁group属性替代include属性

  • 从SpringBoot2.4版开始使用group属性替代include属性,降低了配置书写量
  • 使用group属性定义多种主环境与子环境的包含关系

🔥application.yml

spring:
  profiles:
    active: dev
    group:
      "dev": devDB,devMVC
      "pro": proDB,proMVC

🔥测试
在这里插入图片描述

⭐⭐⭐**注意:

  • 当主环境dev与其他环境有相同的属性时,主环境属性生效,其他环境中有相同的属性时最后加载的环境属性生效。
  • 多环境开发使用group属性配置文件分组,便于线上维护管理。

🍁maven与Springboot多环境兼容

🔥在Maven中设置多环境属性

<!--    设置多环境-->
    <profiles>
        <profile>
            <id>env_dev</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
            <!--            默认启动dev-->
            <!--<activation>
                <activeByDefault>true</activeByDefault>
            </activation>-->
        </profile>

        <profile>
            <id>env_pro</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>
    <build>

🔥application.yml

spring:
  profiles:
    active: @profile.active@
    group:
      "dev": devDB,devMVC
      "pro": proDB,proMVC
  • 当maven与SpringBoot同时对多环境进行控制时,以Maven为主SpringBoot使用@..@占位符读取Maven对应的属性。

🔥 clean项目重新Package
打包详细步骤:点击直接查看
🔥测试
在这里插入图片描述

相关文章
|
11月前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
133 0
|
6月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
429 7
|
6月前
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
4月前
|
Java API 数据库
JPA简介:Spring Boot环境下的实践指南
上述内容仅是JPA在Spring Boot环境下使用的冰山一角,实际的实践中你会发现更深更广的应用。总而言之,只要掌握了JPA的规则,你就可以借助Spring Boot无比丰富的功能,娴熟地驾驶这台高性能的跑车,在属于你的程序世界里驰骋。
158 15
|
7月前
|
缓存 NoSQL Java
基于SpringBoot的Redis开发实战教程
Redis在Spring Boot中的应用非常广泛,其高性能和灵活性使其成为构建高效分布式系统的理想选择。通过深入理解本文的内容,您可以更好地利用Redis的特性,为应用程序提供高效的缓存和消息处理能力。
545 79
|
5月前
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
474 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
4月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
422 0
|
7月前
|
人工智能 自然语言处理 前端开发
20分钟上手DeepSeek开发:SpringBoot + Vue2快速构建AI对话系统
本文介绍如何使用Spring Boot3与Vue2快速构建基于DeepSeek的AI对话系统。系统具备实时流式交互、Markdown内容渲染、前端安全防护等功能,采用响应式架构提升性能。后端以Spring Boot为核心,结合WebFlux和Lombok开发;前端使用Vue2配合WebSocket实现双向通信,并通过DOMPurify保障安全性。项目支持中文语义优化,API延迟低,成本可控,适合个人及企业应用。跟随教程,轻松开启AI应用开发之旅!
|
9月前
|
监控 Java 应用服务中间件
SpringBoot是如何简化Spring开发的,以及SpringBoot的特性以及源码分析
Spring Boot 通过简化配置、自动配置和嵌入式服务器等特性,大大简化了 Spring 应用的开发过程。它通过提供一系列 `starter` 依赖和开箱即用的默认配置,使开发者能够更专注于业务逻辑而非繁琐的配置。Spring Boot 的自动配置机制和强大的 Actuator 功能进一步提升了开发效率和应用的可维护性。通过对其源码的分析,可以更深入地理解其内部工作机制,从而更好地利用其特性进行开发。
290 6
|
9月前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
173 5