Spring Boot集成springfox-boot-starter访问Swagger UI出现404无报错问题
问题解决方案
核心原因
SpringFox 3.0.0 并未适配 Spring Boot 3.x 版本——Spring Boot 3.x 基于 Jakarta EE(包前缀为jakarta.*),而 SpringFox 3.0.0 仍依赖旧的 Java EE(包前缀为javax.*),两者API规范不兼容,导致Swagger UI无法正常加载,添加@EnableSwagger2还会触发依赖缺失报错。
解决步骤
1. 移除SpringFox依赖
删除pom.xml中的SpringFox依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
2. 添加SpringDoc OpenAPI依赖
SpringDoc是当前支持Spring Boot 3.x的主流Swagger替代方案,添加以下依赖到pom.xml:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.2.0</version> <!-- 可根据官方最新版本调整 --> </dependency>
3. 自定义配置(可选)
SpringDoc默认会自动扫描接口,无需额外配置类。如果需要自定义文档标题、版本等信息,可添加如下配置类:
@Configuration public class OpenApiConfiguration { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title("项目API文档") .version("1.0.0") .description("项目所有接口的详细说明")); } }
4. 访问Swagger UI
启动应用后,访问以下地址即可查看接口文档:http://localhost:8060/swagger-ui/index.html
额外说明
- 无需添加任何
@EnableSwagger2或类似注解,SpringDoc会自动启用文档功能。 - 若项目采用WebFlux架构,需将依赖替换为
springdoc-openapi-starter-webflux-ui。
内容的提问来源于stack exchange,提问作者Prafulla Kumar Sahu
相关产品推荐
相关产品推荐

