不推薦使用Spring Boot 2.2.0
- 2019 年 11 月 11 日
- 筆記

版本變化
依賴 | 項目版本 | 目標版本 |
|---|---|---|
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 構造器注入的問題, mybatis 私有構造器不能綁定屬性, 造成其他 依賴mybatis 的框架 類型 mybatis-plus 這種問題
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補充)

