org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name ‘userMapper’ defined in file [/Users/fhs/JavaProjects/SpringBootProject/springboot-mybatis/springboot-mybatis/target/classes/com/itheima/springbootmybatis/mapper/UserMapper.class]: Invalid value type for attribute ‘factoryBeanObjectType’: java.lang.String
问题描述:创建springboot项目时使用mybatis连接数据库时,starter启动起启动失败!
1、问题说明
在学习Springboot时启动器启动失败,反复查看代码发现没有问题,在网上找了解决问题。
起初以为是@Bean注解无法自动装配,又重新引入依赖,清除缓存重启IDEA还是没有解决这个问题
最后发现是springBoot中pom依赖版本的问题:
2、解决方法
查找版本依赖是否匹配
我的这里使用的依赖有mysql-connector-j
就要查找相对应的parent
的版本号
改成3.1.12版本号:
使用
mysql-connector-j
依赖使用版本号有3.1.12
Spring Boot 3.1.12版本:在这个版本中,SpringBoot默认匹配的MySQL驱动版本是8.0.33。同样,Spring Boot Starter Parent也管理了MySQL
Connector/J的依赖,因此你不需要手动指定版本号。只需在pom文件中添加相应的依赖即可自动匹配到正确的MySQL驱动版本
这里是我的pom依赖,提供参考
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.itheima</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-mybatis</name>
<description>springboot-mybatis</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!--mysql驱动依赖-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!--mybatis的起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
成功运行: