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
打包详细步骤:点击直接查看
🔥测试
在这里插入图片描述

相关文章
|
1月前
|
前端开发 Java
表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
文章通过一个表白墙/留言墙的初级SpringBoot项目实例,详细讲解了如何进行前后端开发,包括定义前后端交互接口、创建SpringBoot项目、编写前端页面、后端代码逻辑及实体类封装的全过程。
60 3
表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
1月前
|
前端开发 Java 数据安全/隐私保护
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
文章通过一个简单的SpringBoot项目,详细介绍了前后端如何实现用户登录功能,包括前端登录页面的创建、后端登录逻辑的处理、使用session验证用户身份以及获取已登录用户信息的方法。
130 2
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
基于Java+Springboot+Vue开发的医院门诊预约挂号系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的门诊预约挂号管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
129 2
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
|
26天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
22 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
9天前
|
JavaScript 前端开发 Java
SpringBoot_web开发-webjars&静态资源映射规则
https://www.91chuli.com/ 举例:jquery前端框架
10 0
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
36 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
27天前
|
开发框架 Java API
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
44 0
|
27天前
|
机器学习/深度学习 移动开发 自然语言处理
基于人工智能技术的智能导诊系统源码,SpringBoot作为后端服务的框架,提供快速开发,自动配置和生产级特性
当身体不适却不知该挂哪个科室时,智能导诊系统应运而生。患者只需选择不适部位和症状,系统即可迅速推荐正确科室,避免排错队浪费时间。该系统基于SpringBoot、Redis、MyBatis Plus等技术架构,支持多渠道接入,具备自然语言理解和多输入方式,确保高效精准的导诊体验。无论是线上医疗平台还是大型医院,智能导诊系统均能有效优化就诊流程。
|
1月前
|
JavaScript 前端开发 数据可视化
【SpringBoot+Vue项目实战开发】2020实时更新。。。。。。
【SpringBoot+Vue项目实战开发】2020实时更新。。。。。。
44 0
|
1月前
|
前端开发 JavaScript Java
【SpringBoot系列】视图解析器的搭建与开发
【SpringBoot系列】视图解析器的搭建与开发
22 0