springboot讀取bootstrap配置及knife4j版本兼容性問(wèn)題及解決
因某些特殊原因,需要使用springboot項(xiàng)目讀取bootstrap.yml中配置,然而添加bootstrap依賴(lài)包后,又引發(fā)了springboot、springcloud與knife4j版本匹配的問(wèn)題 這真是一個(gè)環(huán)。。。
項(xiàng)目框架說(shuō)明
項(xiàng)目背景說(shuō)明:
- SpringBoot 2.2.5.RELEASE
- knife4j 3.0.3
連環(huán)坑
- 引入bootstrap啟動(dòng)前配置后,啟動(dòng)失敗
- 按照錯(cuò)誤升級(jí)springboot版本至2.6.6后,啟動(dòng)失敗
- knife4j與springboot版本不兼容,需降springboot版本
- 嘗試三者的版本匹配
問(wèn)題一:springboot項(xiàng)目無(wú)法讀取bootstrap.yml配置
出現(xiàn)此問(wèn)題的原因:
SpringBoot項(xiàng)目,只會(huì)識(shí)別application. *配置文件,并不會(huì)自動(dòng)識(shí)別bootstrap.yml
解決方案:
在pom.xml中添加了bootstrap啟動(dòng)器依賴(lài)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.1</version>
</dependency>
問(wèn)題二:?jiǎn)?dòng)報(bào)錯(cuò),springboot與springcloud版本不匹配
錯(cuò)誤如下:
Spring Boot [2.2.5.RELEASE] is not compatible with this Spring Cloud release train
Action:
Consider applying the following actions:
- Change Spring Boot version to one of the following versions [2.6.x, 2.7.x] .
沒(méi)辦法,按照錯(cuò)誤升級(jí)springboot版本吧(初步嘗試2.6.6)
問(wèn)題三:?jiǎn)?dòng)報(bào)錯(cuò)Failed to start bean‘documentationPluginsBootstrapper’
錯(cuò)誤如下:
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'
在網(wǎng)上查找了下相關(guān)問(wèn)題,參考文獻(xiàn):org.springframework.context.ApplicationContextException的解決辦法,發(fā)現(xiàn)是knife4j(swagger)與springboot版本不匹配,得降低springboot版本?。。?/p>
另一種解決方案:
修改springmvc的路徑匹配策略 - 待驗(yàn)證
因?yàn)镾pringfox使用的路徑匹配是基于A(yíng)ntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher。
#解決:在application.properties里配置 spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER
版本匹配
springboot與bootstrap(springcloud)
| bootstrap(springcloud)版本 | springboot版本 |
|---|---|
| 3.0.1及3.0.0 | [2.3.x, 2.4.x] |
| 3.0.3 | [2.4.x, 2.5.x] |
| 3.1.1 | [2.6.x, 2.7.x] |
最終版本方案
SpringBoot 2.4.13 + SpringCloud 3.0.1 + knife4j 3.0.3 終于可以了?。。?!
后記:不要輕易升級(jí)版本
淚的教訓(xùn)啊,想著knife4j升級(jí)一個(gè)大版本看下新特性,結(jié)果引發(fā)了一系列問(wèn)題~
自己對(duì)于框架的知識(shí)還是不夠清楚啊,得努力學(xué)習(xí)嘍~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Springboot3集成Knife4j的步驟以及使用(最完整版)
- SpringBoot?Knife4j框架&Knife4j的顯示內(nèi)容的配置方式
- SpringBoot與knife4j的整合使用過(guò)程
- springboot3整合knife4j詳細(xì)圖文教程(swagger增強(qiáng))
- springboot整合knife4j全過(guò)程
- knife4j?整合?springboot的過(guò)程詳解
- SpringBoot中使用Knife4J的解決方案
- springboot集成swagger3與knife4j的詳細(xì)代碼
- Springboot中整合knife4j接口文檔的過(guò)程詳解
- knife4j+springboot3.4異常無(wú)法正確展示文檔
相關(guān)文章
Kotlin + Spring Boot 請(qǐng)求參數(shù)驗(yàn)證的代碼實(shí)例
本篇文章主要介紹了Kotlin + Spring Boot 請(qǐng)求參數(shù)驗(yàn)證的代碼實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Java實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)定時(shí)任務(wù)的相關(guān)知識(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-11-11
spring.mvc.servlet.load-on-startup屬性方法源碼解讀
這篇文章主要介紹了spring.mvc.servlet.load-on-startup的屬性方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Java守護(hù)線(xiàn)程和用戶(hù)線(xiàn)程的區(qū)別
這篇文章主要介紹了Java守護(hù)線(xiàn)程和用戶(hù)線(xiàn)程的區(qū)別,用戶(hù)線(xiàn)程和守護(hù)線(xiàn)程,默認(rèn)情況下我們創(chuàng)建的線(xiàn)程或線(xiàn)程池都是用戶(hù)線(xiàn)程,所以用戶(hù)線(xiàn)程也被稱(chēng)之為普通線(xiàn)程,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下2022-05-05
springboot + mybatis + druid + 多數(shù)據(jù)源的問(wèn)題詳解
這篇文章主要介紹了springboot + mybatis + druid + 多數(shù)據(jù)源的問(wèn)題詳解,示例代碼文字相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
SpringBoot中整合MyBatis-Plus的方法示例
這篇文章主要介紹了SpringBoot中整合MyBatis-Plus的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Java?Servlet響應(yīng)httpServletResponse過(guò)程詳解
HttpServletResponse是處理http響應(yīng)的對(duì)象,調(diào)用該對(duì)象的方法,設(shè)置到對(duì)象屬性的內(nèi)容,tomcat最終會(huì)組織為http響應(yīng)報(bào)文2022-02-02

