SpringBoot2.7.4集成Springfox Swagger3遇@RequestBody端点扫描错误求助
Springfox Swagger3 + Spring Boot2.7.4 出现NoClassDefFoundError: org/slf4j/event/Level的解决办法
问题原因
这个错误的核心是Springfox 3.0.0依赖的SLF4J版本与Spring Boot2.7.4自带的SLF4J版本不兼容。Spring Boot2.7.x默认使用SLF4J 1.7.x系列,而Springfox 3.0.0依赖的是SLF4J 2.x版本——org/slf4j/event/Level是SLF4J 2.x新增的类,在1.7.x中不存在,导致类加载失败,进而跳过带@RequestBody的接口解析。
解决办法
方案1:改用Springdoc OpenAPI(推荐)
Springfox已停止维护,对Spring Boot2.6+版本兼容性问题较多,Springdoc是适配Spring Boot生态的替代方案:
- 移除原有Springfox依赖:
<!-- 删除该依赖 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
- 添加Springdoc依赖:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.0.2</version> </dependency>
启动应用后访问http://localhost:端口号/swagger-ui.html即可,无需额外配置,自动解析所有接口(包括带@RequestBody的POST请求)。
方案2:升级Springfox到兼容版本
如果坚持使用Springfox,可升级到修复了SLF4J依赖问题的3.0.1版本,该版本适配Spring Boot2.7.x:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.1</version> </dependency>
升级后重启应用,接口解析异常即可修复。
方案3:统一SLF4J版本为2.x
通过构建工具强制指定SLF4J版本为2.x,匹配Springfox的依赖要求:
- Maven配置:
<properties> <slf4j.version>2.0.7</slf4j.version> </properties> <!-- 排除Spring Boot日志 starter中的旧版SLF4J --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入新版SLF4J及兼容的Logback --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.4.8</version> </dependency>
- Gradle配置:
configurations.all { resolutionStrategy.force 'org.slf4j:slf4j-api:2.0.7' } dependencies { implementation 'ch.qos.logback:logback-classic:1.4.8' }
注意:需确保日志实现(如Logback)也升级到兼容SLF4J 2.x的版本,避免其他日志相关问题。
内容的提问来源于stack exchange,提问作者egzaell
相关产品推荐
相关产品推荐

