Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
## 简介 > 前排提示:这个错误一般是由于 `Spring` 新版本导致的与其他框架不兼容现象,解
渲染中...
## 简介
> 前排提示:这个错误一般是由于 `Spring` 新版本导致的与其他框架不兼容现象,解决办法一般是升级其他框架版本。
使用 `springboot-3.2.1` 和 `mybatis-plus-3.5.5` 搭建开发环境时,启动 *Springboot* 程序时报错,报错信息:
```console
java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.2.jar:6.1.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:836) ~[spring-beans-6.1.2.jar:6.1.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) ~[spring-beans-6.1.2.jar:6.1.2]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.2.jar:6.1.2]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.2.jar:6.1.2]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.2.jar:6.1.2]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.2.jar:6.1.2]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.2.jar:6.1.2]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.1.jar:3.2.1]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) ~[spring-boot-3.2.1.jar:3.2.1]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:464) ~[spring-boot-3.2.1.jar:3.2.1]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.1.jar:3.2.1]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1358) ~[spring-boot-3.2.1.jar:3.2.1]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1347) ~[spring-boot-3.2.1.jar:3.2.1]
at com.***.SpringbootStarter.main(SprinbootStarter.java:19) ~[classes/:na]
```
About:[spring issue #31247](https://github.com/spring-projects/spring-framework/issues/31247)
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
<!-- more -->
## 报错原因
某个类的 `factoryBeanObjectType` 属性类型与配置类型不符合,导致报错,有大佬表示,Spring 从初版就会存在这个问题,不过当时对于这个问题采取了忽略处理,但新版本的 Spring 采取报错来处理。
所以,这个错误一般是由于 `Spring` 新版本导致的与其他框架不兼容现象,解决办法一般是升级其他框架版本。
## 解决
以老狗使用的 `mybatis-plus-3.5.5` 为例,其内部默认依赖于 `mybatis-spring:2.1.2`;需要将其升级为 `mybatis-spring:3.0.3`。
具体方式是,剔除 `mybatis-plus-3.5.5` 默认的 `mybatis-spring`,自行引入新的 `mybatis-spring:3.0.3`:
```xml
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
<exclusions>
<exclusion>
<groupId>com.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
```
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
END
评论
登录后查看和发表评论
前往登录