SpringBoot整合Swagger遇Bean创建失败及HttpStatusCode类缺失错误求助
SpringBoot 3.3.4 整合Swagger启动失败问题解决
问题根源
- 版本兼容性不匹配:
SpringBoot 3.3.4依赖Spring 6.x,org.springframework.http.HttpStatusCode是Spring 6新增的类,但springfox-swagger2 3.0.0仅适配Spring 5.x,无法识别该类,直接触发找不到类的异常。 - 两套Swagger实现冲突:
springdoc-openapi和springfox是完全独立的Swagger集成方案,同时引入会导致大量Bean定义冲突,进一步加剧启动失败问题。
解决步骤
1. 清理冲突依赖
直接移除springfox-swagger-ui、springfox-swagger2 3.0.0的依赖,仅保留springdoc-openapi-starter-webmvc-ui即可——springdoc是专门为SpringBoot 3+适配的Swagger工具,能完全满足文档生成需求。
Maven依赖示例:
<!-- 仅保留springdoc核心依赖 --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.6.0</version> </dependency>
2. 调整Swagger配置类
如果原有配置类是基于springfox编写的,改为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("项目API文档") .version("1.0.0") .description("基于SpringBoot 3.3.4 + SpringDoc OpenAPI构建的接口文档")); } }
3. 验证启动效果
启动项目后,访问http://localhost:你的项目端口/swagger-ui.html,即可正常打开Swagger文档页面。
额外提示
- 原项目中使用的
@Api、@ApiOperation等springfox注解,springdoc完全兼容,无需强制替换;若想升级,可逐步替换为OpenAPI 3的注解(如@Tag替代@Api,@Operation替代@ApiOperation)。 - 检查项目中是否残留springfox相关配置类或Bean定义,避免启动时加载冲突组件。
内容的提问来源于stack exchange,提问作者Music
相关产品推荐
相关产品推荐

