springboot讀取bootstrap配置及knife4j版本兼容性問題及解決
因某些特殊原因,需要使用springboot項(xiàng)目讀取bootstrap.yml
中配置,然而添加bootstrap依賴包后,又引發(fā)了springboot、springcloud與knife4j版本匹配的問題 這真是一個(gè)環(huán)。。。
項(xiàng)目框架說明
項(xiàng)目背景說明:
- 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版本
- 嘗試三者的版本匹配
問題一:springboot項(xiàng)目無法讀取bootstrap.yml配置
出現(xiàn)此問題的原因:
SpringBoot項(xiàng)目,只會(huì)識(shí)別application. *配置文件,并不會(huì)自動(dòng)識(shí)別bootstrap.yml
解決方案:
在pom.xml中添加了bootstrap啟動(dòng)器依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.1.1</version> </dependency>
問題二:?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] .
沒辦法,按照錯(cuò)誤升級(jí)springboot版本吧(初步嘗試2.6.6)
問題三:?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)問題,參考文獻(xiàn):org.springframework.context.ApplicationContextException的解決辦法,發(fā)現(xiàn)是knife4j(swagger)與springboot版本不匹配,得降低springboot版本?。?!
另一種解決方案:
修改springmvc的路徑匹配策略 - 待驗(yàn)證
因?yàn)镾pringfox使用的路徑匹配是基于AntPathMatcher的,而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ā)了一系列問題~
自己對(duì)于框架的知識(shí)還是不夠清楚啊,得努力學(xué)習(xí)嘍~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Springboot3集成Knife4j的步驟以及使用(最完整版)
- SpringBoot?Knife4j框架&Knife4j的顯示內(nèi)容的配置方式
- SpringBoot與knife4j的整合使用過程
- springboot3整合knife4j詳細(xì)圖文教程(swagger增強(qiáng))
- springboot整合knife4j全過程
- knife4j?整合?springboot的過程詳解
- SpringBoot中使用Knife4J的解決方案
- springboot集成swagger3與knife4j的詳細(xì)代碼
- Springboot中整合knife4j接口文檔的過程詳解
- knife4j+springboot3.4異常無法正確展示文檔
相關(guān)文章
Maven引入本地Jar包并打包進(jìn)War包中的方法
本篇文章主要介紹了Maven引入本地Jar包并打包進(jìn)War包中的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11SpringBoot請(qǐng)求處理之常用參數(shù)注解介紹與源碼分析
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)請(qǐng)求處理、常用注解和方法參數(shù)的小技巧2022-10-10Java使用JDBC連接Oracle_MSSQL實(shí)例代碼
這篇文章主要介紹了Java使用JDBC連接Oracle_MSSQL實(shí)例代碼,需要的朋友可以參考下2014-01-01java實(shí)現(xiàn)對(duì)對(duì)碰小游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)對(duì)對(duì)碰小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12