SpringBoot升級(jí)3.2報(bào)錯(cuò)Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案
問題描述
youlai-boot 升級(jí) Spring Boot 3.2 版本項(xiàng)目啟動(dòng)報(bào)錯(cuò):
java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
報(bào)錯(cuò)截圖如下:

原因分析
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 類型會(huì)拋出 IllegalArgumentException 異常。
此時(shí)因?yàn)?factoryBeanObjectType 是 String 類型,不符合條件而拋出異常。

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

確實(shí) 3.0.3 版本已出

Mybatis-Plus 官方 ISSUE#5808 下面也說明會(huì)在 3.5.5 版本升級(jí) mybatis-spring 依賴修復(fù)此問題,但截止到目前只有快照版本 3.5.5-SNAPSHOT 。
所以目前好一點(diǎn)的方案就是手動(dòng)升級(jí) 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>
修改后再重新啟動(dòng)ok

以上就是SpringBoot升級(jí)3.2報(bào)錯(cuò)Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot升級(jí)3.2報(bào)錯(cuò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何通過java實(shí)現(xiàn)highcharts導(dǎo)出圖片至excel
這篇文章主要介紹了如何通過java實(shí)現(xiàn)highcharts導(dǎo)出圖片至excel。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們就來一起學(xué)習(xí)一下吧2019-06-06
如何解決getReader() has already been called&
這篇文章主要介紹了如何解決getReader() has already been called for this request問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringSecurity Jwt Token 自動(dòng)刷新的實(shí)現(xiàn)
這篇文章主要介紹了SpringSecurity Jwt Token 自動(dòng)刷新的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
JAVA 并發(fā)容器的一些易出錯(cuò)點(diǎn)你知道嗎
今天給大家?guī)淼奈恼率荍ava并發(fā)編程的相關(guān)知識(shí),文中對(duì)java同步容器與并發(fā)容器做了非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-09-09
java實(shí)現(xiàn)學(xué)生信息錄入界面
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)生信息錄入界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

