Spring Boot 3集成springdoc-openapi-ui遇404问题求助
Spring Boot 3 集成 Swagger UI(OpenAPI 3.0)404 问题排查与解决
1. 依赖版本不匹配(核心问题)
Spring Boot 3 基于 Jakarta EE,你当前使用的 springdoc-openapi-ui:1.6.11 是适配 Spring Boot 2(基于 Java EE)的版本,两者不兼容,这是导致404的主要原因。
替换为适配 Spring Boot 3 的 springdoc v2.x 版本,Maven 依赖如下:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.2.0</version> </dependency>
2. 访问路径变更
Spring Boot 3 对应的 Swagger UI 访问路径已调整,不再是 localhost:8080/swagger-ui.html,正确的访问路径为:
http://localhost:8080/swagger-ui/index.html- 或简化路径:
http://localhost:8080/swagger-ui/
3. Spring Security 拦截(若项目使用)
如果你的项目集成了 Spring Security,需要放行 Swagger 相关的静态资源和接口,否则会被拦截导致404。在 Security 配置类中添加如下规则:
@Configuration public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests(auth -> auth // 放行swagger相关路径 .requestMatchers("/swagger-ui/**", "/v3/api-docs/**") .permitAll() // 其他请求需认证 .anyRequest().authenticated() ); return http.build(); } }
4. 可选:自定义 OpenAPI 配置
如果需要自定义 API 文档的标题、描述等信息,可以添加配置类:
@Configuration public class OpenApiConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title("你的API文档") .version("1.0") .description("API接口描述")); } }
内容的提问来源于stack exchange,提问作者Nadar
相关产品推荐
相关产品推荐

