news 2026/4/23 15:48:30

SpringBoot 3.4.x踩坑记录及解决方案(持续更新)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot 3.4.x踩坑记录及解决方案(持续更新)
废话
最近使用JDK17+Spring Boot3.4.0 做新项目遇到的一些坑,记录并且给出一些实际的解决方案
一、集成Mybatis Plus 3.5.9的问题

第一:不能只引入mybatis-plus-spring-boot3-starter依赖了,需要配合mybatis-plus-jsqlparser

<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> </dependency>

第二:版本统一管理

<dependencyManagement> <dependencies> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-bom</artifactId> <version>3.5.9</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

详情请见:https://baomidou.com/getting-started/install/

二、集成Knife4j-OpenApi3

这个改动真的有点大,切费老鼻子劲了,不建议旧项目直接迁移,不然得改到S3赛季开战!

<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.4.0</version> </dependency>

1、实体类写法变动
没有@ApiModel 和@ApiModelProperty写法,全局使用@Schema

@Schema(name = "OaDeptDTO对象", description = "部门表") public class OaDeptDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; @Schema(description = "主键") private Long id; @Schema(description = "父部门id",defaultValue = "0") private Long parentId; @Schema(description = "部门名称") private String deptName; @Schema(description = "部门编码") private String deptCode; @Schema(description = "状态(0正常 1停用)") private Integer status; }

2 接口类写法

没有@Api和@ApiOperation写法

旧版本

新版本

@Api

@Tag

@ApiOperationi

@Operation

@Tag(name = "部门表") @RestController @RequiredArgsConstructor @RequestMapping("/oa/dept") public class OaDeptController { private final OaDeptAppService oaDeptAppService; @Operation(summary = "新增部门") @PostMapping("/add") public Result<Boolean> add(@RequestBody OaDeptDTO oaDept) { return Result.ok(oaDeptAppService.add(oaDept)); } }

注意注意请注意(呜呜呜~~~~)

Knife4j-OpenApi3存在一个大问题,如果你的项目中存在全局异常拦截类,@RestControllerAdvice/@ControllerAdvice,访问接口文档会报错,这是版本得bug,所以你无需自卑也不要过度伤心,叉掉你浏览器上密密麻麻的标签页吧。

详情见issue:https://github.com/xiaoymin/knife4j/issues/865

解决方案:升级springdoc-openapi-starter-webmvc-ui 2.7.0

<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>${knife4j.version}</version> <exclusions> <exclusion> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.7.0</version> </dependency>
三、接口写法变动

之前的写法:(这样一直没毛病啊,但是3.4.0不行!!!!)

@Operation(summary = "查询数据明细") @GetMapping("/{id}") public Result<OaRoleVO> detail(@PathVariable Long id) { return Result.ok(oaRoleAppService.detail(id)); }

报错信息:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause

解决方案:

@Operation(summary = "查询数据明细") @GetMapping("/{id}") public Result<OaRoleVO> detail(@PathVariable("id") Long id) { return Result.ok(oaRoleAppService.detail(id)); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 7:32:37

PDF-Extract-Kit实战:科研论文参考文献提取系统搭建

PDF-Extract-Kit实战&#xff1a;科研论文参考文献提取系统搭建 1. 引言 1.1 科研文档处理的痛点与挑战 在科研工作中&#xff0c;大量时间被消耗在文献整理、数据提取和格式转换上。传统方式依赖手动复制粘贴&#xff0c;不仅效率低下&#xff0c;还容易出错。尤其面对包含…

作者头像 李华
网站建设 2026/4/23 14:15:31

HY-MT1.5术语库管理教程:专业领域翻译质量保障

HY-MT1.5术语库管理教程&#xff1a;专业领域翻译质量保障 随着全球化进程的加速&#xff0c;高质量、精准化的机器翻译需求日益增长。特别是在医疗、法律、金融等专业领域&#xff0c;术语的准确性直接决定了翻译结果的可用性。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#…

作者头像 李华
网站建设 2026/4/23 14:16:24

PDF-Extract-Kit实战:PDF文档关键词提取系统

PDF-Extract-Kit实战&#xff1a;PDF文档关键词提取系统 1. 引言 在数字化办公和学术研究中&#xff0c;PDF文档已成为信息传递的主要载体。然而&#xff0c;PDF格式的非结构化特性使得关键信息提取变得复杂&#xff0c;尤其是当文档包含公式、表格、图像混合排版时&#xff…

作者头像 李华
网站建设 2026/4/23 14:15:54

HY-MT1.5-7B混合语言处理:社交媒体内容翻译

HY-MT1.5-7B混合语言处理&#xff1a;社交媒体内容翻译 随着全球化进程的加速&#xff0c;跨语言交流在社交媒体、电商、新闻传播等场景中变得愈发重要。尤其是在多语言混杂的社交语境下&#xff0c;传统翻译模型往往难以准确理解语义边界和文化语境。为此&#xff0c;腾讯推出…

作者头像 李华
网站建设 2026/4/23 13:14:57

Spring 框架——@Retryable 注解与 @Recover 注解

目录 1.Retryable 注解介绍2.示例&#xff1a;如何使用 Retryable 注解 2.1.添加依赖2.2.启用重试功能2.3.使用 Retryable 注解2.4.解释 3.Recover 注解介绍4.示例&#xff1a;Recover 注解与 Retryable 注解配合使用 4.1.两者配合使用4.2.两者对应关系 5.其他注意事项 1.Ret…

作者头像 李华
网站建设 2026/4/17 22:56:51

混元翻译1.5格式化样式定制:企业品牌化输出

混元翻译1.5格式化样式定制&#xff1a;企业品牌化输出 随着全球化进程的加速&#xff0c;企业对高质量、多语言、可定制化翻译服务的需求日益增长。传统的通用翻译模型虽然具备广泛的语言覆盖能力&#xff0c;但在面对企业特定术语、品牌语调和格式一致性要求时往往力不从心。…

作者头像 李华