springboot2.7.18 升级到3.1.5过程
Spring Boot3 从 2.7.10升级到3.1.5有以下几个点需要注意。JDK版本支持从JDK 17-19版本javax.servlet切换到jakarta.servletspring.redis配置切换为spring.data.redisSpring Cloud 2022.0.4Spring Cloud Alibaba 2022.0.0.0Spring Boot3 升级参考文档spring boot升级参考spring cloud升级参考spring cloud alibaba升级参考SpringBoot3版本代码示例GitHub - jeecgboot/JeecgBoot at springboot3查看springboot父级项目和依赖项目是否有依赖 springboot2.7.18若有责需要需要升级到3.1.5相关依赖版本!-- 微服务 -- spring-cloud.version2022.0.4/spring-cloud.version spring-cloud-alibaba.version2022.0.0.0/spring-cloud-alibaba.version alibaba.nacos.version2.0.4/alibaba.nacos.version xxl-job-core.version2.4.1/xxl-job-core.version fastjson.version2.0.43/fastjson.version aviator.version5.2.6/aviator.version pegdown.version1.6.0/pegdown.version commonmark.version0.17.0/commonmark.version knife4j-spring-boot-starter.version4.4.0/knife4j-spring-boot-starter.version !-- 数据库驱动 -- postgresql.version42.2.25/postgresql.version ojdbc6.version11.2.0.3/ojdbc6.version sqljdbc4.version4.0/sqljdbc4.version mysql-connector-java.version8.0.27/mysql-connector-java.version hutool.version5.8.25/hutool.version !-- 国产数据库驱动 -- kingbase8.version9.0.0/kingbase8.version dm8.version8.1.1.49/dm8.version !-- 积木报表-- jimureport-spring-boot-starter.version1.9.4/jimureport-spring-boot-starter.version !-- 持久层 -- mybatis-plus.version3.5.3.2/mybatis-plus.version dynamic-datasource-spring-boot-starter.version4.1.3/dynamic-datasource-spring-boot-starter.version druid.version1.2.24/druid.version commons-io.version2.11.0/commons-io.version commons.version2.6/commons.version aliyun-java-sdk-dysmsapi.version2.1.0/aliyun-java-sdk-dysmsapi.version aliyun.oss.version3.17.3/aliyun.oss.version !-- shiro -- shiro.version1.12.0/shiro.version java-jwt.version3.11.0/java-jwt.version shiro-redis.version3.2.2/shiro-redis.version codegenerate.version1.4.9/codegenerate.version autopoi-web.version1.4.11/autopoi-web.version minio.version8.5.7/minio.version justauth-spring-boot-starter.version1.4.0/justauth-spring-boot-starter.version dom4j.version1.6.1/dom4j.version qiniu-java-sdk.version7.4.0/qiniu-java-sdk.version jedis.version3.8.0/jedis.version baidu-java-sdk.version4.16.19/baidu-java-sdk.version !-- Log4j2爆雷漏洞 -- !-- spring boot 3 不支持下列两个版本-- !--log4j2.version2.17.0/log4j2.version-- logback.version1.4.12/logback.version升级activiti到8.0.0添加activiti 指定仓库由于7.1.0.M6以后 官方不再将构建制品发布到maven中央仓库了而是发布在了alfresco仓库这就需要我们仓库才能正确下载依赖.在pom中添加repositories标签然后再添加repository标签。如果repositories已经有了切不要再添加而是将repository标签和里面的内容复制进去。最终效果如下repositories repository idactiviti-releases/id urlhttps://artifacts.alfresco.com/nexus/content/repositories/activiti-releases/url /repository我activiti项目中的全部依赖含activitiproperties activiti.version8.0.0/activiti.version pagehelper.boot.version1.4.6/pagehelper.boot.version /properties dependencies !-- pagehelper 分页插件 -- dependency groupIdcom.github.pagehelper/groupId artifactIdpagehelper-spring-boot-starter/artifactId version${pagehelper.boot.version}/version /dependency !--activiti-- dependency groupIdorg.activiti/groupId artifactIdactiviti-dependencies/artifactId version${activiti.version}/version scopeimport/scope typepom/type /dependency dependency groupIdorg.activiti/groupId artifactIdactiviti-spring-boot-starter/artifactId version${activiti.version}/version exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-jpa/artifactId /exclusion exclusion artifactIdmybatis/artifactId groupIdorg.mybatis/groupId /exclusion exclusion artifactIdcommons-io/artifactId groupIdcommons-io/groupId /exclusion exclusion artifactIdspring-jdbc/artifactId groupIdorg.springframework/groupId /exclusion exclusion artifactIdjakarta.persistence-api/artifactId groupIdjakarta.persistence/groupId /exclusion /exclusions /dependency dependency groupIdorg.springframework/groupId artifactIdspring-jdbc/artifactId version5.3.30/version !-- 根据你的Spring版本调整 -- /dependency dependency groupIdorg.jeecgframework.boot/groupId artifactIdjeecg-system-biz/artifactId version3.7.3/version /dependency !--引入微服务启动依赖 starter-- dependency groupIdorg.jeecgframework.boot/groupId artifactIdjeecg-boot-starter3-cloud/artifactId version3.7.3/version /dependency dependency groupIdorg.hibernate/groupId artifactIdhibernate-core/artifactId exclusions exclusion groupIdcommons-collections/groupId artifactIdcommons-collections/artifactId /exclusion /exclusions /dependency dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.3.1/version exclusions exclusion artifactIdjsqlparser/artifactId groupIdcom.github.jsqlparser/groupId /exclusion exclusion artifactIdmybatis/artifactId groupIdorg.mybatis/groupId /exclusion exclusion artifactIdspring-jdbc/artifactId groupIdorg.springframework/groupId /exclusion /exclusions /dependency !-- 引入定时任务依赖 -- dependency groupIdorg.jeecgframework.boot/groupId artifactIdjeecg-boot-starter-job/artifactId version3.8.0/version /dependency dependency groupIdcom.dameng/groupId artifactIdDm8JdbcDriver18/artifactId version8.1.1.49/version /dependency dependency groupIdcom.dameng/groupId artifactIdDmDialect-for-hibernate5.0/artifactId version8.1.1.49/version /dependency dependency groupIdorg.jetbrains/groupId artifactIdannotations/artifactId version26.0.2/version scopecompile/scope /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-security/artifactId /dependency dependency groupIdorg.hibernate.orm/groupId artifactIdhibernate-core/artifactId version6.6.13.Final/version exclusions exclusion artifactIdhibernate-commons-annotations/artifactId groupIdorg.hibernate.common/groupId /exclusion exclusion artifactIdjakarta.persistence-api/artifactId groupIdjakarta.persistence/groupId /exclusion /exclusions !-- Spring Boot 3.1.x兼容版本 -- /dependency dependency groupIdorg.hibernate/groupId artifactIdhibernate-jpamodelgen/artifactId version6.6.13.Final/version typepom/type scopeprovided/scope /dependency /dependencies因activiti默认集成Security SecurityConfig 需要全部放行但升级完写法也变了注释的事boot2,下面没注释掉的是boot3的package org.jeecg.modules.activiti.config.security; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; //import org.springframework.security.config.annotation.web.builders.HttpSecurity; //import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; //import org.springframework.security.core.userdetails.User; //import org.springframework.security.core.userdetails.UserDetailsService; //import org.springframework.security.provisioning.InMemoryUserDetailsManager; //import org.springframework.security.web.SecurityFilterChain; // //Configuration //EnableWebSecurity //public class SecurityConfig extends WebSecurityConfigurerAdapter { // Override // public void configure(HttpSecurity http) throws Exception { // // http.authorizeRequests() // .anyRequest().permitAll().and().logout().permitAll()//配置不需要登录验证 // .and().headers().frameOptions().sameOrigin() // 解决 frame because it set X-Frame-Options to deny // .and().csrf().disable() //关闭跨站请求伪造 // ; // } //} import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; Configuration EnableWebSecurity public class SecurityConfig { Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http // 授权配置 .authorizeHttpRequests(auth - auth .anyRequest().permitAll() // 允许所有请求 ) // 登出配置 .logout(logout - logout .permitAll() // 允许所有人访问登出端点 ) // 头部配置 .headers(headers - headers .frameOptions(frame - frame .sameOrigin() // 允许同源iframe嵌套 ) ) // CSRF配置 .csrf(csrf - csrf .disable() // 禁用CSRF保护 ); return http.build(); } }#Shiro升级说明​由于Spring Boot内部的servlet包换掉了所以shiro需要升级不过还好shiro官方提供了支持以下是shiro的升级替换。需要注意的是spring boot 3.1.5对jedis的版本做了提升提升后shiro无法兼容所以只能在项目进行降版本处理。shiro升级参考文档 Java17和springboot3.0使用shiro报ClassNotFoundException_shiro java17-CSDN博客!--shiro-- dependency groupIdorg.apache.shiro/groupId artifactIdshiro-spring-boot-starter/artifactId version${shiro.version}/version exclusions exclusion groupIdorg.apache.shiro/groupId artifactIdshiro-spring/artifactId /exclusion /exclusions /dependency !-- shiro-redis -- dependency groupIdorg.crazycake/groupId artifactIdshiro-redis/artifactId version${shiro-redis.version}/version exclusions exclusion groupIdorg.apache.shiro/groupId artifactIdshiro-core/artifactId /exclusion exclusion artifactIdcheckstyle/artifactId groupIdcom.puppycrawl.tools/groupId /exclusion /exclusions /dependency !-- shiro 无法使用 spring boot 3.X 自带的jedis降版本处理 -- dependency groupIdredis.clients/groupId artifactIdjedis/artifactId version2.9.0/version /dependency dependency groupIdorg.apache.shiro/groupId artifactIdshiro-spring/artifactId classifierjakarta/classifier version${shiro.version}/version !-- 排除仍使用了javax.servlet的依赖 -- exclusions exclusion groupIdorg.apache.shiro/groupId artifactIdshiro-core/artifactId /exclusion exclusion groupIdorg.apache.shiro/groupId artifactIdshiro-web/artifactId /exclusion /exclusions /dependency !-- 引入适配jakarta的依赖包 -- dependency groupIdorg.apache.shiro/groupId artifactIdshiro-core/artifactId classifierjakarta/classifier version${shiro.version}/version /dependency dependency groupIdorg.apache.shiro/groupId artifactIdshiro-web/artifactId classifierjakarta/classifier version${shiro.version}/version exclusions exclusion groupIdorg.apache.shiro/groupId artifactIdshiro-core/artifactId /exclusion /exclusions /dependency#knife4j升级说明​knife4j对于spring boot 3.X版本提供了支持不过相当于spring boot 2.X的版本来说差异比较大从springfox转换成了springdoc不能做到平滑升级以下是需要替换的注解列表.knife4j升级参考文档​Knife4j版本参考 | Knife4jOpenAPI 3 Library for spring-bootknife4j 2版本与3版注解变化如下​便于大家快速升级官方写了一个Python脚本可以快速将整个项目升级为springdoc注解。Api→TagApiIgnore→Parameter(hidden true)orOperation(hidden true)orHiddenApiImplicitParam→ParameterApiImplicitParams→ParametersApiModel→SchemaApiModelProperty(hidden true)→Schema(accessMode READ_ONLY)ApiModelProperty→SchemaApiOperation(value foo, notes bar)→Operation(summary foo, description bar)ApiParam→ParameterApiResponse(code 404, message foo)→ApiResponse(responseCode 404, description foo)同样在初始化文档对象上也有区别以下前后替换[Bean](https://my.oschina.net/bean) public GroupedOpenApi swaggerOpenApi() { return GroupedOpenApi.builder() .group(default) .packagesToScan(org.jeecg) .build(); } [Bean](https://my.oschina.net/bean) public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title(JeecgBoot 后台服务API接口文档) .version(1.0) .contact(new Contact().name(北京国炬信息技术有限公司).url(www.jeccg.com).email(jeecgos163.com)) .description( 后台API接口) .termsOfService(NO terms of service) .license(new License().name(Apache 2.0).url(http://www.apache.org/licenses/LICENSE-2.0.html)) ); } // ---------------------------替换后--------------------- [Bean](https://my.oschina.net/bean) public GroupedOpenApi swaggerOpenApi() { return GroupedOpenApi.builder() .group(default) .packagesToScan(org.jeecg) .build(); } [Bean](https://my.oschina.net/bean) public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title(JeecgBoot 后台服务API接口文档) .version(1.0) .contact(new Contact().name(北京国炬信息技术有限公司).url(www.jeccg.com).email(jeecgos163.com)) .description( 后台API接口) .termsOfService(NO terms of service) .license(new License().name(Apache 2.0).url(http://www.apache.org/licenses/LICENSE-2.0.html)) ); }升级的maven地址dependency groupIdcom.github.xiaoymin/groupId artifactIdknife4j-openapi3-jakarta-spring-boot-starter/artifactId version4.3.0/version /dependency在knife4j 4.X版本中首次在对swagger文档与spring cloud gateway进行了整合提供完整的解决方案做到了开箱即用以下是应用案例dependency groupIdcom.github.xiaoymin/groupId artifactIdknife4j-gateway-spring-boot-starter/artifactId version4.3.0/version /dependency#spring boot 3.x 生态平滑升级​以下为平滑升级即更换版本即可不需要做任何调整!-- druid -- dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-3-starter/artifactId version1.2.20/version /dependency !-- 动态数据源 -- dependency groupIdcom.baomidou/groupId artifactIddynamic-datasource-spring-boot3-starter/artifactId version4.1.3/version /dependency !-- spring boot-admin -- dependency groupIdde.codecentric/groupId artifactIdspring-boot-admin-starter-server/artifactId version3.0.4/version /dependency#META-INF升级spring.factories​新建文件org.springframework.boot.autoconfigure.AutoConfiguration.imports把需要自动加载的启动类一行一个全限定名就可以了 替换原来的spring.factories升级小技巧​模块快速升级springboot3改造过程第一步切换项目JDK和Maven的JDK为17 第二步替换过时类 搜索javax.servlet.http.HttpServletRequest 替换为jakarta.servlet.http.HttpServletRequest 搜索javax.servlet.http.HttpServletResponse 替换为jakarta.servlet.http.HttpServletRequest 搜索javax.websocket 替换为jakarta.websocket 搜索Api替换为//Api 搜索AutoLowApp替换为//AutoLowApp 搜索io.swagger.annotations.ApiModel删掉 搜索io.swagger.annotations.Api删掉 搜索javax.annotation.Resource删掉开源删除类搜索org.jeecg.common.constant.enums.LowAppAopEnum删掉 搜索org.jeecg.common.aspect.annotation.AutoLowApp删掉 搜索org.jeecg.common.bpm.api.IBpmBaseExtApi删掉mvnhelp解决冲突依赖冲突这个事情就不详细讲了每个项目的情况都不一样你可以用mvnhelp解决冲突若有依赖冲突报错再想着去Exclude掉不用把显示的所有有冲突依赖全部去掉那样项目可能反而起不来Maven Helper mvn项目冲突如何解决_maven helper运行时冲突-CSDN博客

相关新闻

Drawio UI界面个性化配置

Drawio UI界面个性化配置

Drawio是免费、强大的图形绘制工具,为最大化扩大绘图区,个性化配置默认样式以提高绘图效率,研究了UI界面、默认样式的配置方法。配置文件使用方法单击菜单的【其它】|【配置】,将配置文件(json格式)内容复制…

2026/7/29 18:15:49 阅读更多 →
三维CAD: 曲面等距

三维CAD: 曲面等距

将已知曲面沿曲面法向偏移一个恒定的或多个可变的距离产生的曲面,即为等距面。 恒等距:给定等距(偏移)方向和距离,生成与已知曲面等距的曲面。 变等距:给定四个角点的等距距离,生成一张等距曲…

2026/7/29 18:14:49 阅读更多 →
GetQzonehistory:三步轻松备份QQ空间所有历史说说的开源工具

GetQzonehistory:三步轻松备份QQ空间所有历史说说的开源工具

GetQzonehistory:三步轻松备份QQ空间所有历史说说的开源工具 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代,QQ空间承载着我们珍贵的青春记忆&#x…

2026/7/29 18:14:49 阅读更多 →

最新新闻

Pattern Monster API完全指南:开发者如何集成自定义图案生成功能

Pattern Monster API完全指南:开发者如何集成自定义图案生成功能

Pattern Monster API完全指南:开发者如何集成自定义图案生成功能 【免费下载链接】svelte-svg-patterns Create seamless patterns in SVG to use as website backgrounds, header images, stationery design and package design 项目地址: https://gitcode.com/g…

2026/7/29 18:30:54 阅读更多 →
莫刻机器人LJM登榜WorldArena第二!阿里云PAI提供全流程训练支撑

莫刻机器人LJM登榜WorldArena第二!阿里云PAI提供全流程训练支撑

当具身世界模型从「生成逼真视频」迈向「理解动作后果」,强大的算力底座正是这场技术跃迁的隐形引擎近日,具身世界模型权威评测 WorldArena 更新最新榜单,由莫刻机器人(Muka Robotics)打造的具身世界模型 LJM&#xff…

2026/7/29 18:30:54 阅读更多 →
英雄联盟Akari助手:你的终极LCU API游戏效率工具,快速提升操作水平

英雄联盟Akari助手:你的终极LCU API游戏效率工具,快速提升操作水平

英雄联盟Akari助手:你的终极LCU API游戏效率工具,快速提升操作水平 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在…

2026/7/29 18:30:54 阅读更多 →
WechatSogou:如何通过Python高效获取微信公众号数据?

WechatSogou:如何通过Python高效获取微信公众号数据?

WechatSogou:如何通过Python高效获取微信公众号数据? 【免费下载链接】WechatSogou 基于搜狗微信搜索的微信公众号爬虫接口 项目地址: https://gitcode.com/gh_mirrors/we/WechatSogou 在当今信息爆炸的时代,微信公众号已成为企业营销…

2026/7/29 18:30:54 阅读更多 →
Meteor Client完整指南:如何在Minecraft中快速安装和配置这款强大的实用模组

Meteor Client完整指南:如何在Minecraft中快速安装和配置这款强大的实用模组

Meteor Client完整指南:如何在Minecraft中快速安装和配置这款强大的实用模组 【免费下载链接】meteor-client Based Minecraft utility mod. 项目地址: https://gitcode.com/gh_mirrors/me/meteor-client Meteor Client是一款基于Fabric的Minecraft实用模组&…

2026/7/29 18:30:54 阅读更多 →
ASP一句话木马攻防解析:从eval原理到纵深防护体系

ASP一句话木马攻防解析:从eval原理到纵深防护体系

1. 项目概述&#xff1a;ASP一句话木马的隐蔽攻击与防护在Web安全领域&#xff0c;ASP一句话木马是一个经久不衰的话题&#xff0c;它以其极致的简洁和强大的后渗透能力&#xff0c;成为攻击者渗透网站、获取服务器权限的“瑞士军刀”。标题中提到的<%eval request(“pass“…

2026/7/29 18:29:53 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02&#xff1a;合并知识功能&#xff0c;给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中&#xff0c;我们学习了如何构建一个基础的 AI 问答系统&#xff0c;通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景&#xff1a;…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行&#xff1a;AI Agent的范式转变过去两年&#xff0c;大语言模型最显著的应用形态是聊天机器人——用户提问&#xff0c;AI回答。但真正的生产力革命发生在2023年下半年&#xff1a;当AI学会主动调用工具完成任务时&#xff0c;生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻