1. 程式人生 > 程式設計 >不推薦使用Spring Boot 2.2.0 ,這個問題你肯定會遇到

不推薦使用Spring Boot 2.2.0 ,這個問題你肯定會遇到

專案推薦: 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補充)

專案推薦: Spring Cloud 、Spring Security OAuth2的RBAC許可權管理系統 歡迎關注