目录

问题

探索过程

总结

问题

今天在学习MyBatisPlus过程中突然报了个错,信息如下

Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

Caused by: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838)

at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532)

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138)

at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)

at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137)

at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)

at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)

at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1442)

at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552)

at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137)

at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108)

at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225)

at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152)

... 17 more

报错大意:factoryBeanObjectType 属性值类型无效

探索过程

显然这个错误不是我们代码内部出错导致的

应该是jar包版本的问题,但是我MybatisPlus的起步依赖已经是目前最高版本了3.5.4

com.baomidou

mybatis-plus-boot-starter

3.5.4

那有没有可能是Maven依赖传递的问题呢?还真让我发现了

在这个起步依赖的直接依赖中,myBatis-Spring的版本竟然是2.1.1

而我的SpringBoot版本是3.2.0,试试换一个myBatis-Spring的版本

org.mybatis

mybatis-spring

3.0.3

成了!

总结

问题原因:这个问题是由于依赖传递导致,在MyBatis起步依赖中的myBatis-spring版本过低,导致程序无法运行

解决方法:在pom.xml文件中配置一个更高版本的myBatis-spring依赖即可,别忘了刷新maven配置哦~

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: