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

Spring Boot 3与Springfox 3.0集成失败,Swagger UI无法访问求助

Spring Boot 3.x + Springfox 集成失败的问题解决

为啥会出现白标错误?

Springfox 3.0.0完全不兼容Spring Boot 3.x版本,根源有两个:

  • Spring Boot 3.x全面切换到Jakarta EE API(包路径为jakarta.*),但Springfox 3.0.0仍依赖旧的Java EE API(javax.*包),两者类路径冲突,导致Swagger核心组件无法正常初始化。
  • Springfox项目已经停止维护,最新版本停留在2020年的3.0.0,官方没有适配Spring Boot 3的计划。

靠谱解决方案:换用Springdoc OpenAPI

Springdoc是Springfox的替代项目,专门适配Spring Boot 3.x,配置更简洁。

1. 替换pom依赖

移除原有的Springfox依赖,添加Springdoc的starter:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.2.0</version> <!-- 适配Spring Boot 3.x的稳定版 -->
</dependency>

2. 简化配置(可选)

Springdoc默认自动完成配置,不需要编写原有的SpringFoxConfig类。如果需要自定义API分组或规则,可以写个简单的配置类:

import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringDocConfig {
    @Bean
    public GroupedOpenApi publicApi() {
        return GroupedOpenApi.builder()
                .group("public-api")
                .pathsToMatch("/**")
                .build();
    }
}

3. 访问Swagger UI

启动项目后,访问地址:http://localhost:8080/swagger-ui/index.html
(注意和Springfox的路径不同,末尾多了index.html)

备选方案:降级Spring Boot到2.x

如果坚持使用Springfox,只能将Spring Boot版本降级到2.7.x(比如你测试过的2.7.9),并给配置类添加@EnableSwagger2注解:

@Configuration
@EnableSwagger2
public class SpringFoxConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

访问路径保持http://localhost:8080/swagger-ui/即可正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:17:40