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 当前最新版本 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 版本修复此问题

确实 3.0.3 版本已出

Mybatis-Plus 官方 ISSUE#5808 下面也说明会在 3.5.5 版本升级 mybatis-spring 依赖修复此问题,但截止到目前只有快照版本 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的解决方案的详细内容,更多关于SpringBoot升级3.2报错的资料请关注脚本之家其它相关文章!
相关文章
SpringBoot集成Swagger2生成接口文档的方法示例
我们提供Restful接口的时候,API文档是尤为的重要,它承载着对接口的定义,描述等,本文主要介绍了SpringBoot集成Swagger2生成接口文档的方法示例,需要的朋友们下面随着小编来一起学习学习吧2018-12-12
使用java + selenium + OpenCV破解腾讯防水墙滑动验证码功能
这篇文章主要介绍了使用java + selenium + OpenCV破解腾讯防水墙滑动验证码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11
使用Eclipse创建Maven的Java WEB项目的两种方式
本文详细介绍了如何在JDK 1.8、Maven 3.6.3和Eclipse 2017版本下创建Java Web项目,包括选择archetype方式、配置Tomcat、设置为Web3.1、配置Maven编译级别、修复Eclipse提示的错误、设置Maven源文件夹等步骤,需要的朋友可以参考下2024-11-11


最新评论