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

Spring Boot 3集成Swagger失败:无法加载API定义求助

问题原因及解决办法

你的问题出在依赖不兼容+框架混用+配置类错误三个核心点上,具体分析和解决步骤如下:

1. 核心问题拆解

  • Spring Boot 3基于Spring 6,你引入的springfox-boot-starter:3.0.0仅支持Spring Boot 2.x版本,和Spring Boot 3完全不兼容,会引发底层API冲突。
  • 你同时混用了SpringFox(旧Swagger实现)和SpringDoc(Spring Boot 3官方推荐的OpenAPI实现)两个不同的API文档框架,二者配置逻辑、底层机制完全不同,会互相干扰。
  • 你的SwaggerConfig类是基于SpringFox的Docket和Swagger 2规范编写的,在Spring Boot 3+SpringDoc环境下完全无效,甚至会触发加载异常。

2. 具体解决步骤

步骤一:清理依赖,保留SpringDoc

删除pom.xml中的springfox-boot-starter依赖,仅保留SpringDoc的依赖:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.3</version>
</dependency>

步骤二:删除或替换旧配置类

直接删除你当前的SwaggerConfig类,SpringDoc默认会自动扫描所有API接口。如果需要自定义文档信息(比如标题、描述),可以改用SpringDoc的配置方式:

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class OpenApiConfig {
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("title")
                        .description("desc")
                        .version("1"));
    }
}

步骤三:访问正确的Swagger UI地址

启动应用后,访问http://localhost:你的端口号/swagger-ui.html(SpringDoc 2.x版本的默认地址),即可正常加载API定义。

内容的提问来源于stack exchange,提问作者java12399900

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:05:08