springboot 升级到3.5.x后knife4j 文档无法识别问题解决
一、问题描述
将springboot从3.5.3版本升级到3.5.x后,访问xxx/doc.htm时原来的接口文档不显示了,同时控制台报错 jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean.<init>(java.lang.Object)'
二、原因分析
依赖版本冲突:
spingboot 3.5.3
knife4j 4.5.0
三、解决方案
替换knife4j 版本,当前com.github.xiaoymin提供的依赖版本最新为4.5.0,和springboot3.5.x依赖冲突,将com.github.xiaoymin依赖库替换成com.github.xingfudeshi 最新版本4.6.0即可
替换前
<!--knife4j & SpringDoc -->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version> <!-- 确认支持 Spring Boot 3.5.x -->
</dependency>
替换后
<!-- knife4j & SpringDoc -->
<dependency><groupId>com.github.xingfudeshi</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.6.0</version>
</dependency>