You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:35:32