SpringBoot3.3.1报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String

此时我把mybatis的依赖注释掉发现了问题解决,也就是问题原因是mybatis-spring的版本问题

但是,mybatis-spring的版本也就到3.0.3,我用的是3.0.0,也不低

后面上网发现问题

mybatis-plus-spring-boot3-starter的版本是3.5.5,依赖的是

所以如果不注释mybatis-spring的依赖,只需要把这个依赖的版本升到3.0.3就可以了

网上找到的根本原因

旧版本的mybatis-spring版本ClassPathMapperScanner#processBeanDefinitions 方法里将 BeanClassName 赋值给 String 变量

并将 beanClassName 赋值给 factoryBeanObjectType

但是在 Spring Boot 3.2 版本中FactoryBeanRegistrySupport#getTypeForFactoryBeanFromAttributes方法已变更,如果 factoryBeanObjectType 不是 ResolvableType 或 Class 类型会抛出 IllegalArgumentException 异常。

此时因为 factoryBeanObjectType 是 String 类型,不符合条件而抛出异常。

滚动至顶部