不推薦使用Spring Boot 2.2.0 ,這個問題你肯定會遇到
阿新 • • 發佈:2019-12-31
專案推薦: Spring Cloud 、Spring Security OAuth2的RBAC許可權管理系統 歡迎關注 最近升級專案的依賴 到最新版本
版本變化
依賴 | 專案版本 | 目標版本 |
---|---|---|
Spring Boot | 2.1.9.RELEASE | 2.2.0.RELEASE |
Spring Cloud | Greenwich.SR3 | Hoxton.RC1 |
Spring Boot Admin | 2.1.6 | 2.2.0 |
Hoxton 版本依賴廠庫
目前 Spring Cloud Hoxton
未釋出 RELEASE
版本,官方計劃 本月釋出
使用 Hoxton.RC1
版本需要配置 spring
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
複製程式碼
spring boot admin 未釋出 2.2.0
適配版本
解決方法: 使用快照版本2.2.0-SNAPSHOT
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false </enabled>
</releases>
</repository>
複製程式碼
升級中遇到的問題
- spring boot 2.2.0 bug,造成 和mybatis 3.5.2 不相容
官方issue: github.com/spring-proj…
構造器注入的問題, mybatis 私有構造器不能繫結屬性, 造成其他 依賴mybatis
的框架 型別 mybatis-plus
這種問題 gitee.com/baomidou/my…
Failed to bind properties under 'mybatis-plus.configuration.incomplete-result-maps[0].assistant.configuration.mapped-statements[0].parameter-map.parameter-mappings[0]' to org.apache.ibatis.mapping.ParameterMapping
複製程式碼
- 解決方法:
我們重新編譯了 mybatis 3.5.2 、mybatis-plus 3.2.0 修改部分原始碼相容 私有構造器改成public,maven 座標修改為
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.2.0</
複製程式碼
總結
- 由於使用的
Spring Cloud RC
版本未同步到 阿里雲等國內映象廠庫
mvn clean install
複製程式碼
可能會出現失敗,建議重複執行幾次即可
- 鑑於Spring Boot 2.2.0 和 mybatis 的不相容問題,2.2.1 會修復這個問題,建議暫時不要升級2.2.0 直接使用 2.2.1
2.2.1 已經發布,請直接升級到2.2.1 即可解決相容問題 (2019年11月07補充)