SpringBoot升級3.2報錯Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案
問題描述
youlai-boot 升級 Spring Boot 3.2 版本項目啟動報錯:
java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
報錯截圖如下:

原因分析
mybatis-spring 官方 ISSUE: https://github.com/mybatis/spring/issues/855
項目中使用 mybatis-plus-boot-starter 當(dāng)前最新版本 3.5.4.1 ,其中依賴的 mybatis-spring 版本為 2.1.1

在 mybatis-spring 2.1.1 版本的 ClassPathMapperScanner#processBeanDefinitions 方法里將 BeanClassName 賦值給 String 變量

并將 beanClassName 賦值給 factoryBeanObjectType

但是在 Spring Boot 3.2 版本中FactoryBeanRegistrySupport#getTypeForFactoryBeanFromAttributes方法已變更,如果 factoryBeanObjectType 不是 ResolvableType 或 Class 類型會拋出 IllegalArgumentException 異常。
此時因為 factoryBeanObjectType 是 String 類型,不符合條件而拋出異常。

解決方案
mybatis-spring 官方 ISSUE 說明在 3.0.3 版本修復(fù)此問題

確實 3.0.3 版本已出

Mybatis-Plus 官方 ISSUE#5808 下面也說明會在 3.5.5 版本升級 mybatis-spring 依賴修復(fù)此問題,但截止到目前只有快照版本 3.5.5-SNAPSHOT 。
所以目前好一點的方案就是手動升級 mybatis-spring 版本為 3.0.3
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.4.1</version>
<exclusions>
<exclusion>
<artifactId>mybatis-spring</artifactId>
<groupId>org.mybatis</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.3</version>
</dependency>
修改后再重新啟動ok

以上就是SpringBoot升級3.2報錯Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案的詳細內(nèi)容,更多關(guān)于SpringBoot升級3.2報錯的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring中bean的初始化和銷毀幾種實現(xiàn)方式詳解
這篇文章主要介紹了Spring中bean的初始化和銷毀幾種實現(xiàn)方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
SpringBoot集成Swagger2生成接口文檔的方法示例
我們提供Restful接口的時候,API文檔是尤為的重要,它承載著對接口的定義,描述等,本文主要介紹了SpringBoot集成Swagger2生成接口文檔的方法示例,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
JavaEE的進程,線程和創(chuàng)建線程的5種方式詳解
這篇文章主要為大家詳細介紹了JavaEE的進程,線程和創(chuàng)建線程的5種方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
SpringCloud Gateway動態(tài)路由配置詳解
這篇文章主要為大家介紹了SpringCloud Gateway動態(tài)路由配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
Java 關(guān)鍵字 volatile 的理解與正確使用
本文主要介紹 volatile 的使用準則,以及使用過程中需注意的地方,感興趣的朋友一起看看吧2017-06-06
使用java + selenium + OpenCV破解騰訊防水墻滑動驗證碼功能
這篇文章主要介紹了使用java + selenium + OpenCV破解騰訊防水墻滑動驗證碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
使用Eclipse創(chuàng)建Maven的Java WEB項目的兩種方式
本文詳細介紹了如何在JDK 1.8、Maven 3.6.3和Eclipse 2017版本下創(chuàng)建Java Web項目,包括選擇archetype方式、配置Tomcat、設(shè)置為Web3.1、配置Maven編譯級別、修復(fù)Eclipse提示的錯誤、設(shè)置Maven源文件夾等步驟,需要的朋友可以參考下2024-11-11

