Spring Boot 2.5.3升级Spring Boot 3.2.2的方案设计及落地计划

Spring Boot 2.5.3升级Spring Boot 3.2.2的方案设计及落地

    • 一、方案设计
      • 调研升级优势
      • 兼容性及风险评估
      • 引入开源软件评审
      • 备份与版本控制
      • 升级依赖
      • 代码修改
      • 测试
    • 二、落地计划
      • 项目准备
      • 环境搭建
      • 实施升级
      • 验证与部署
      • 总结与反馈

一、方案设计

调研升级优势

首先,查看Spring Boot 3.2.2的发布说明,了解自2.5.3版本以来的所有重要变化,包括新特性、弃用的功能以及任何可能影响现有应用的更新。

其次,收集现有项目瓶颈及问题,比如性能瓶颈等。

最后,对Spring Boot 2.x与Spring Boot 3.x进行性能、功能测试等,查看对比各项数据指标,比如抗压能力、QPS、TPS、响应时间等。

兼容性及风险评估

评估当前项目使用的所有依赖库是否兼容Spring Boot 3.2.2。特别是第三方库和自定义模块,需要仔细查阅官方文档或相关资源确认其兼容性。检查Spring Boot 3.2.2中是否删除了在2.5.3中使用的任何类或方法,确保能平滑升级。

奇安信等扫描软件对Spring Boot 3.2.2安全扫描,确保没有高危漏洞。

引入开源软件评审

引入Spring Boot 3.2.2,JDK21,Spring Framework 6等开源软件,需要准备测试报告、安全漏洞等文件进行评审。压测并发场景及并发数更加公司提供的硬件设计,我司当时提供2C4G,4C8G,8C16G,GoldenDB8.0.25。并发量1w+,性能拐点在5k+。

备份与版本控制

从试点项目开始逐步升级,全项目分阶段性升级,直至全公司升级。在开始升级之前,对项目进行完整的备份,确保可以回滚到原始状态。使用版本控制系统(如Git)记录每一步的更改,以便跟踪和回滚。

升级依赖

升级Jdk版本至19+。
更新pom.xml或build.gradle文件中的Spring Boot版本为3.2.2。
升级其他必要的依赖库版本,以确保与Spring Boot 3.2.2的兼容性。

代码修改

根据Spring Boot 3.2.2的官方迁移指南,修改项目中可能不兼容的代码。
特别注意Java版本的要求,Spring Boot 3.2.2可能需要更高版本的Java。

测试

对升级后的项目进行全面的单元测试、集成测试和性能测试,确保所有功能正常运行且性能稳定。
在不同的环境中(如开发、测试和生产)进行部署和测试,以验证升级后的应用在各种场景下的表现。

二、落地计划

项目准备

组建升级团队,明确团队成员的职责和任务。
制定详细的项目时间表,包括每个阶段的开始和结束时间。

环境搭建

准备升级所需的开发、测试和生产环境,确保环境配置与当前项目一致。
安装必要的工具和软件,如Maven、Gradle、IDE等。

实施升级

按照方案设计中的步骤进行升级操作,包括兼容性评估、备份与版本控制、升级依赖、代码修改等。
在每个阶段完成后,进行阶段评审和测试,确保升级过程的顺利进行。

验证与部署

在测试环境中验证升级后的应用功能和性能,确保满足业务需求。
制定详细的部署计划,包括部署时间、部署方式(如滚动部署、蓝绿部署等)以及回滚策略。
在生产环境中进行部署,并监控应用的运行状态和性能指标。

总结与反馈

在升级完成后,对整个升级过程进行总结和评估,记录经验和教训。
收集团队成员的反馈和建议,为未来的升级工作提供参考和改进方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts X轴类目名太长时隐藏显示全部

echarts图表X轴 在柱状图中,X轴类目名如果数据太长; echarts会默认进行隐藏部分字段; 如果我们想让每一个类目名都显示出来,需要进行额外的处理X轴类目名太长时,默认只显示一部分类目名 <!DOCTYPE html> <html lang="en"> <head><meta ch…

基于51单片机的超声波测距及温度显示

基于51单片机的超声波测距 &#xff08;仿真&#xff0b;程序&#xff0b;PCB原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.超声波测距传感器HC-SR04、温度传感器DS18B20将检测的数据传给51单片机&#xff1b; 2.LCD1602实时显示测得的距离和温…

javaWeb项目-社区医院管理服务系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Java技术 Java语…

【HTML】页面引用Vue3和Element-Plus

在现代前端开发中&#xff0c;Vue 3 和 Element Plus 是非常受欢迎的技术。Vue 3 是一个用于构建用户界面的渐进式 JavaScript 框架&#xff0c;而 Element Plus 是一个基于 Vue 3 的组件库&#xff0c;提供了丰富的 UI 组件&#xff0c;帮助开发者快速构建高质量的前端应用。 …

pyTorch框架部署实践

相关代码链接见文末 1.所需基本环境配置 首先&#xff0c;我们需要一个预先训练好的模型以及相应的配置。接下来&#xff0c;为了实际应用这个模型&#xff0c;我们必须搭建一个功能强大的服务器。这台服务器的核心任务是加载我们的模型&#xff0c;并能够接收用户上传的图片。…

保姆级,Linux中安装搭建Python环境

Linux中安装搭建Python环境 前手准备&#xff1a;在Linux中运行一下代码&#xff1a; yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make zlib zlib-devel libffi-devel -y进入Python下载官网https://www.…

串口中断与环形队列——高级应用

目录 前言环形队列环形队列程序设计前言 由于串口中断服务函数处理串口的数据寄存器的数据时,存储数据和处理数据需要一定的时间,所以接收数据的频率不能太快。为了解决这个问题,在中断服务函数中将串口的数据寄存器值存储在环形队列中,只做存储功能,处理数据的功能放在主…

[综述笔记]Benchmarking Graph Neural Networks for FMRI analysis

论文网址&#xff1a;[2211.08927] Benchmarking Graph Neural Networks for FMRI analysis (arxiv.org) ⭐不是真正意义上的综述&#xff0c;应该是分析性质的文章 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错…

C++基础——std::cout输出bool值

在C中&#xff0c;std::cout 默认输出布尔值时会显示 1&#xff08;表示 true&#xff09;或 0&#xff08;表示 false&#xff09;。如果想要改变这个行为&#xff0c;使得输出为 true 或 false 文本&#xff0c;可以使用 std::boolalpha 操纵符。 以下是如何使用它的示例&…

【电控实物-infantry】

云台电机参数 电机内部参数 相电阻:Rs1.8欧 相电感:Ls5.7810^-3H 转矩常数:Kt 0.741 NM/A 转动惯量:J KG-m^2 电机接收数据&#xff1a;-16384到16384&#xff08;-3A到3A&#xff09; 电机反馈&#xff1a;速度RPM rad/s &#xff08;2πrpm&#xff09;/60 C板陀螺仪&…

【深度学习实战(20)】使用torchsummary打印模型结构

一、安装torchsummary库 pip install torchsummary 二、代码 import torchvision.models as models from torchsummary import summarymodel models.AlexNet() model.to(cuda) summary(model,(3,224, 224))

Base64编码原理和代码实现

1、Base64编码实现原理 第一步&#xff1a; 原理是把每 3 个字节&#xff08;每个字节为 8 位, 3 个字节为 24 位&#xff09;重新划为 4 组&#xff08;每组为 6位&#xff09; 第二步: 重新划分的每组 6 位的字节中&#xff0c;高位补两个 0 为 8 位后作为一个新的 8 位字节…

脚手架搭建项目package.json配置中依赖的版本问题

脚手架搭建项目package.json配置中依赖的版本问题 问题描述&#xff1a;项目刚搭建好&#xff0c;运行没有问题&#xff0c;为什么过一段时间&#xff0c;删除node_modules&#xff0c;或者重新安装包依赖&#xff0c;然后项目某些地方出现莫名的错误&#xff08;依赖库的地方…

Redis篇:缓存击穿及解决方案

1.何为缓存击穿 缓存击穿问题也叫热点Key问题&#xff0c;就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了&#xff08;有可能是正好过期了&#xff09;&#xff0c;无数的请求访问会在瞬间给数据库带来巨大的冲击。 常见的解决方案有两种&#xff1a; 互斥锁 逻…

c# 连接数据库、excel数据批量导入到数据库

string str $"select from TBa where ... ";DataSet ds new DataSet();using (SqlConnection conn new SqlConnection("server000.000.0.000;database数据库名;user id登录的用户名;password密码;Poolingtrue")){try{conn.Open();SqlCommand com new Sq…

逐行分析Transformer的程序代码,最后免费附上该代码!!

1. 代码详细解释 1. 第一段代码 这段代码首先定义了一些参数&#xff0c;包括编码器个数、输入维度、句子长度、词嵌入维度等。然后它保存了这些超参数到指定路径。接着&#xff0c;它加载训练和验证数据集&#xff0c;并创建了对应的数据加载器。之后&#xff0c;它定义了一个…

设计模式- 享元模式(Flyweight Pattern)结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

PHP 爬虫如何配置代理 IP(CURL 函数)

在 PHP中 配置代理IP&#xff0c;可以通过设置 CURL 库的选项来实现&#xff0c;代码如下&#xff1a; 当然你要有代理ip来源&#xff0c;比如我用的这个 代理商 &#xff0c;如果想服务稳定不建议找开源代理池&#xff0c;避免被劫持。 <?php // 初始化cURL会话 $ch cu…

php序列化存储和反序列化的使用方法

在 PHP 中,序列化(serialization)是将一个变量转换为可存储或传输的字符串表示形式的过程。反序列化(unserialization)则是将这个字符串转换回原始的 PHP 变量。这在存储对象到数据库、缓存系统或者在网络中传输对象时非常有用。 序列化 PHP 提供了 serialize() 函数来序…

xgp会员一年多少钱?xgp一个月多少钱?微软商店xgp会员价格指南

xgp是xbox游戏平台。xgp是类似于steam、epic等&#xff0c;拥有丰富游戏资源的平台。该平 台的全称为“XBox Game Pass”&#xff0c;俗称为“西瓜皮”。xgp是会员订阅模式&#xff0c;开启会员后&#xff0c;所有游戏资源都为你开放。pc版的&#xff0c;第一个月10港币&#x…