SpringBoot和Springfox(Swagger)版本不兼容的解決方案
一.報(bào)錯(cuò)信息
org.springframework.context.ApplicationContextException: Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException
二.解決方案
根據(jù)提供的錯(cuò)誤信息和搜索結(jié)果,這個(gè)問題通常與 Spring Boot 和 Springfox(Swagger)的集成有關(guān)。錯(cuò)誤提示Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException表明在 Spring Boot 應(yīng)用啟動(dòng)過程中,documentationPluginsBootstrapper這個(gè) bean 無法正常啟動(dòng),原因是遇到了空指針異常(NullPointerException)。這通常是由于 Spring Boot 和 Springfox 的版本不兼容導(dǎo)致的路徑匹配策略沖突。
1.修改 Spring MVC 的路徑匹配策略
修改 Spring MVC 的路徑匹配策略:Springfox 假設(shè) Spring MVC 的路徑匹配策略是ant-path-matcher,而 Spring Boot 2.6 及以上版本的默認(rèn)匹配策略是path-pattern-matcher。您可以通過在application.yml或application.properties配置文件中添加以下配置來解決這個(gè)問題:
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
這樣可以將 Spring MVC 的路徑匹配策略更改為ant-path-matcher,以兼容 Springfox 的要求。
2.配置 WebMvcConfigurer
配置 WebMvcConfigurer:您可以通過創(chuàng)建一個(gè)配置類并繼承WebMvcConfigurationSupport,然后重寫addResourceHandlers方法來解決靜態(tài)資源路徑問題:
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(
"classpath:/static/");
registry.addResourceHandler("swagger-ui.html", "doc.html").addResourceLocations(
"classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}
這樣可以確保 Swagger 的靜態(tài)資源能夠被正確加載。
3.檢查依賴關(guān)系
檢查依賴關(guān)系:確保您的項(xiàng)目中包含了正確的 Spring Boot Actuator 依賴。如果您使用的是 Maven,可以在pom.xml文件中添加以下依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
這有助于確保documentationPluginsBootstrapper bean 能夠正確創(chuàng)建。
4.降低 SpringBoot 版本
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> <relativePath/> </parent>
到此這篇關(guān)于SpringBoot和Springfox(Swagger)版本不兼容的解決方案的文章就介紹到這了,更多相關(guān)SpringBoot和Springfox版本不兼容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot 接口對(duì)接文件及對(duì)象的操作方法
這篇文章主要介紹了Springboot 接口對(duì)接文件及對(duì)象的操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
SpringBoot如何通過Feign調(diào)用傳遞Header中參數(shù)
這篇文章主要介紹了SpringBoot通過Feign調(diào)用傳遞Header中參數(shù),本文給大家分享兩種解決方案給大家詳細(xì)講解,需要的朋友可以參考下2023-04-04
IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟
這篇文章主要介紹了IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
淺談Java實(shí)現(xiàn)分布式事務(wù)的三種方案
現(xiàn)在互聯(lián)網(wǎng)下,分布式和微服務(wù)橫行,難免會(huì)遇到分布式下的事務(wù)問題,當(dāng)然微服務(wù)下可能沒有分布式事務(wù),但是很多場(chǎng)景是需要分布式事務(wù)的。下面就來介紹下什么是分布式事務(wù)和分布式事務(wù)的解決方案2021-06-06
Java中的concurrenthashmap集合詳細(xì)剖析
這篇文章主要介紹了Java中的concurrenthashmap集合詳細(xì)剖析,有參構(gòu)造后第一次put時(shí)會(huì)進(jìn)行初始化,由源碼可知,會(huì)先判斷所傳入的容量是否>=最大容量的一半,如果滿足條件,就會(huì)將容量修改為最大值,反之則會(huì)將容量改為所傳入數(shù)*1.5+1,需要的朋友可以參考下2023-11-11
Spring?Boot攔截器Interceptor與過濾器Filter實(shí)戰(zhàn)指南
本文給大家介紹Spring?Boot攔截器Interceptor與過濾器Filter實(shí)戰(zhàn)指南,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-05-05

