当前位置: 首页 > news >正文

Spring Boot 启动失败:Failed to start bean ‘documentationPluginsBootstrapper’ 解决方案

文章目录

    • 1. 问题描述 🎯
    • 2. 可能原因分析 🔍
      • 原因 1:SpringFox 版本与 Spring Boot 版本不兼容 ❌
        • ✅ 解决方案:添加兼容性配置(首选!!!!)
      • 原因 2:SpringFox 依赖冲突 ⚠️
        • ✅ 解决方案:确保只使用正确的 SpringFox 依赖
      • 原因 3:Spring Boot 3.x 不支持 SpringFox 🚨
        • ✅ 解决方案:使用 springdoc-openapi 替代 SpringFox
      • 原因 4:Swagger 配置文件错误 📌
        • ✅ 解决方案:检查 SwaggerConfig 配置
    • 3. 解决方案总结 ✅
    • 4. 结尾 🚀

1. 问题描述 🎯

在使用 SpringFox Swagger 进行 API 文档管理时,Spring Boot 启动失败,报出如下错误:

Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPointerException

该错误通常发生在 Spring Boot 2.6+ 或 Spring Boot 3.x 版本,并且使用了 SpringFox 依赖,导致 documentationPluginsBootstrapper 这个 Bean 无法正常初始化。


2. 可能原因分析 🔍

原因 1:SpringFox 版本与 Spring Boot 版本不兼容 ❌

  • SpringFox 3.0.0 不完全兼容 Spring Boot 2.6+ 及更高版本,可能导致 NullPointerException
  • Spring Boot 3.x 完全不支持 SpringFox,必须使用 springdoc-openapi 替代。
✅ 解决方案:添加兼容性配置(首选!!!!)

如果使用 Spring Boot 2.6+,可以在 application.ymlapplication.properties 中添加:

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

原因 2:SpringFox 依赖冲突 ⚠️

如果 pom.xmlbuild.gradle 存在多个 Swagger 相关依赖,可能会导致 SpringFox 初始化失败。

✅ 解决方案:确保只使用正确的 SpringFox 依赖
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

⚠️ 删除可能冲突的 Swagger 依赖,如:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.x.x</version>
</dependency>

原因 3:Spring Boot 3.x 不支持 SpringFox 🚨

Spring Boot 3.x 完全不兼容 SpringFox,建议直接更换 springdoc-openapi

✅ 解决方案:使用 springdoc-openapi 替代 SpringFox

删除 SpringFox 相关依赖,改用 springdoc-openapi

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

使用 springdoc-openapi 后,Swagger UI 访问地址变为:

http://localhost:8080/swagger-ui/index.html

原因 4:Swagger 配置文件错误 📌

如果 SwaggerConfig.java 配置错误,可能导致 Bean 为空。

✅ 解决方案:检查 SwaggerConfig 配置

确保 SwaggerConfig.java 代码正确:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

3. 解决方案总结 ✅

问题解决方案
Spring Boot 2.6+ 与 SpringFox 3.0 不兼容添加 spring.mvc.pathmatch.matching-strategy=ant_path_matcher
依赖冲突确保 springfox-boot-starter 版本正确,删除旧版 Swagger 依赖
Spring Boot 3.x 不支持 SpringFox改用 springdoc-openapi
Swagger 配置文件错误确保 SwaggerConfig.java 配置正确

4. 结尾 🚀

如果使用 Spring Boot 3.x,建议直接使用 springdoc-openapi 代替 SpringFox。如果仍然使用 SpringFox,确保 springfox-boot-starter 版本正确,并添加 ant_path_matcher 配置。减少不必要的 Swagger 依赖,避免依赖冲突。

相关文章:

  • 在 Linux 中,lsblk 命令输出内容解释
  • Linux网络编程——TCP网络通信多线程处理
  • 大白话JavaScript详细描述基于原型链实现对象继承的步骤,分析其在共享属性、内存占用等方面的优缺点
  • OpenHands:OpenDevin的升级版,由人工智能驱动的软件开发代理平台
  • stm32第四天控制蜂鸣器
  • mmdet3d.models.utils的clip_sigmoid理解
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.1.1基于ES的语义搜索(BERT嵌入向量)
  • Chainlit 实现SSO单点登录CAS授权完整代码图文教程
  • Python:被装饰的函数,多个装饰器的装饰过程
  • html css 笔记
  • 什么是设计模式
  • Matlab 双线性插值(二维)
  • TypeScript基础
  • Uniapp使用地图的时候滑动上层的view地图也滑动
  • 【DevOps】Backstage介绍及如何在Azure Kubernetes Service上进行部署
  • 附下载 | 2024 OWASP Top 10 基础设施安全风险.pdf
  • Shader中着色器的编译目标级别
  • vue3数据双向绑定解析
  • Unity3D 着色器优化(Shader Optimization)
  • 机器人基础知识
  • 梅花奖在上海|第六代“杨子荣”是怎样炼成的?
  • 家庭相册㉙在沪打拼25年,我理解了父母清晨去卖蜜饯的辛苦
  • 吴勇强、高颜已任南京市委常委
  • 定位真核生物起源于约27.2亿年前,华东师大团队在《自然》发文
  • 美联储主席:关税“远超预期”,美联储实现目标的进程或被推迟至明年
  • 抗战回望19︱《中国工程师学会四川考察团报告》:“将来重工业所在,以四川为最适宜之地点”