mybatisplus3.5.14和springboot3.5.8出现Invalid value type for attribute ‘factoryBeanObjectType‘
👉 这是官方为 Spring Boot 3.x 提供的适配版本,内部已经替换了兼容的。,在扫描 Mapper 接口时生成代理对象失败。,避免手动维护依赖。
🔎 问题原因
-
Spring Boot 3.x 强制使用 Jakarta EE 9+ 命名空间(
jakarta.*替代javax.*)。 -
MyBatis-Plus 3.5.14 的
mybatis-spring依赖仍然基于旧版javax.*,在扫描 Mapper 接口时生成代理对象失败。 -
最终触发
Invalid value type for attribute 'factoryBeanObjectType': java.lang.String错误。
最近升级开源项目,就遇到这个问题,这是 MyBatis-Plus 与 Spring Boot 3.x 的兼容性问题。你用的 mybatis-plus-boot-starter:3.5.14 默认绑定了旧版 mybatis-spring,在 Spring Boot 3.5.8(基于 Spring Framework 6.2.x)下不兼容,导致 factoryBeanObjectType 类型错误。解决办法是升级到专门适配 Spring Boot 3 的依赖。

2025-11-23T11:37:05.037+08:00 ERROR 1944 --- [quartz-api-scheduler] [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'quartzEntityMapper' defined in file [D:\Workspace\Project\quartz-api-scheduler\target\classes\com\software\dev\mapper\QuartzEntityMapper.class]: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:864) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.getType(AbstractBeanFactory.java:744) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAnnotationOnBean(DefaultListableBeanFactory.java:818) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.boot.sql.init.dependency.AnnotationDependsOnDatabaseInitializationDetector.detect(AnnotationDependsOnDatabaseInitializationDetector.java:36) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor.detectDependsOnInitializationBeanNames(DatabaseInitializationDependencyConfigurer.java:152) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor.postProcessBeanFactory(DatabaseInitializationDependencyConfigurer.java:115) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:363) ~[spring-context-6.2.14.jar:6.2.14]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:197) ~[spring-context-6.2.14.jar:6.2.14]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:791) ~[spring-context-6.2.14.jar:6.2.14]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:609) ~[spring-context-6.2.14.jar:6.2.14]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.5.8.jar:3.5.8]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.5.8.jar:3.5.8]
at com.software.dev.Application.main(Application.java:16) ~[classes/:na]
✅ 解决方案
方案 1:使用专门的 Spring Boot 3 Starter(推荐)
在 pom.xml 中替换依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.9</version>
</dependency>
👉 这是官方为 Spring Boot 3.x 提供的适配版本,内部已经替换了兼容的 mybatis-spring。
方案 2:手动排除并引入兼容版本
如果你必须继续用 mybatis-plus-boot-starter,可以排除旧的 mybatis-spring 并引入新版本:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.14</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.4</version> <!-- 兼容 Spring Boot 3 -->
</dependency>
-
⚠️不要同时引入 MyBatis 和 MyBatis-Plus 的 starter,否则会冲突。
-
⚠️建议直接升级到 3.5.9+ 的
mybatis-plus-spring-boot3-starter,避免手动维护依赖。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)