不推薦使用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補充)

Tags: