不推薦使用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: https://github.com/spring-pro...
構造器注入的問題, mybatis 私有構造器不能綁定屬性, 造成其他 依賴mybatis 的框架 類型 mybatis-plus 這種問題 https://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補充)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章