集成swagger后出现Failed to start bean ‘documentationPluginsBootstrapper‘

集成swagger后出现Failed to start bean 'documentationPluginsBootstrapper'


SpringBoot集成swagger后出现Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException
之前就出现过创建SpringBoot项目集成swagger问题,今天又遇到了,就来写一下提供一下几种解决办法。

1、bug重现
当前遇到报错的环境是:SpringBoot版本为2.7.8,集成的swagger版本为2.9.2(最新版本已经更新到3.0.0了)

	//SpringBoot版本号
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
    </parent>
    
	//swagger2 版本号
	<dependency>
       <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>

2、报错原因分析
SpringBoot 2.6及以上版本做了迭代,Spring Boot 2.6.X使用的是PathPatternMatcher,而Springfox 使用的路径匹配是基于AntPathMatcher的。

3、解决方案
①方案一:更改Spring Boot 版本到2.6.x以下版本

Spring Boot版本Swagger 版本
2.5.62.9.2
2.3.12.RELEASE2.9.2
之前创建项目时,为了项目包不冲突,创建的SpringBoot版本是 2.3.12.RELEASE,集成的swagger版本是2.9.2,这样的搭配是没有问题的。
	//SpringBoot版本号
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

	//swagger2 版本号
	<dependency>
       <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>

②方案二:不更改Spring Boot 版本

Spring Boot版本Swagger 版本
2.5.63.0.0
2.7.82.9.2
第一种组合:我是借鉴网友:https://blog.csdn.net/cxclll/article/details/126745903
但我发现里面有一个类引不进来(不知道是不是我环境的原因),出于懒,我就想到了一个折中的方法,下面讲。

新增类引用不上

第二种组合是:
当前项目 SpringBoot 版本是2.7.8,集成的 swagger 版本是2.7.0的版本。
swagger 2.7版本跟最新的也就是样式和交互上的区别,2.9.2 要更扁平化一些。
	//SpringBoot版本号
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

	//swagger2 版本号
	<dependency>
       <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>
然后在项目的resource目录下的 *.yaml 文件中加上:

spring.mvc.pathmatch.matching-strategy: ant_path_matcher

现在 Springboot 和 SpringCloud 的配置文件大多都是yaml文件,用上面这种输入可以自动匹配格式。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴小雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值