SpringBoot升級3.2報(bào)錯Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案
問題描述
youlai-boot 升級 Spring Boot 3.2 版本項(xiàng)目啟動報(bào)錯:
java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
報(bào)錯截圖如下:
原因分析
mybatis-spring
官方 ISSUE: https://github.com/mybatis/spring/issues/855
項(xiàng)目中使用 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
異常。
此時因?yàn)?factoryBeanObjectType
是 String 類型,不符合條件而拋出異常。
解決方案
mybatis-spring 官方 ISSUE 說明在 3.0.3 版本修復(fù)此問題
確實(shí) 3.0.3 版本已出
Mybatis-Plus 官方 ISSUE#5808 下面也說明會在 3.5.5 版本升級 mybatis-spring 依賴修復(fù)此問題,但截止到目前只有快照版本 3.5.5-SNAPSHOT
。
所以目前好一點(diǎn)的方案就是手動升級 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報(bào)錯Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot升級3.2報(bào)錯的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring中bean的初始化和銷毀幾種實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Spring中bean的初始化和銷毀幾種實(shí)現(xiàn)方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11SpringBoot集成Swagger2生成接口文檔的方法示例
我們提供Restful接口的時候,API文檔是尤為的重要,它承載著對接口的定義,描述等,本文主要介紹了SpringBoot集成Swagger2生成接口文檔的方法示例,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式詳解
這篇文章主要為大家詳細(xì)介紹了JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03SpringCloud Gateway動態(tài)路由配置詳解
這篇文章主要為大家介紹了SpringCloud Gateway動態(tài)路由配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03基于spring 方法級緩存的多種實(shí)現(xiàn)
下面小編就為大家?guī)硪黄趕pring 方法級緩存的多種實(shí)現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Java redisTemplate阻塞式處理消息隊(duì)列
用redis中的List可以實(shí)現(xiàn)隊(duì)列,這樣可以用來做消息處理和任務(wù)調(diào)度的隊(duì)列。因此,本文將主要為大家介紹如何利用redisTemplate處理消息隊(duì)列,感興趣的小伙伴可以了解一下2021-12-12Java 關(guān)鍵字 volatile 的理解與正確使用
本文主要介紹 volatile 的使用準(zhǔn)則,以及使用過程中需注意的地方,感興趣的朋友一起看看吧2017-06-06使用java + selenium + OpenCV破解騰訊防水墻滑動驗(yàn)證碼功能
這篇文章主要介紹了使用java + selenium + OpenCV破解騰訊防水墻滑動驗(yàn)證碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11使用Eclipse創(chuàng)建Maven的Java WEB項(xiàng)目的兩種方式
本文詳細(xì)介紹了如何在JDK 1.8、Maven 3.6.3和Eclipse 2017版本下創(chuàng)建Java Web項(xiàng)目,包括選擇archetype方式、配置Tomcat、設(shè)置為Web3.1、配置Maven編譯級別、修復(fù)Eclipse提示的錯誤、設(shè)置Maven源文件夾等步驟,需要的朋友可以參考下2024-11-11