org.springframework.beans.factory.UnsatisfiedDependencyException异常问题的解决

2023-10-30

最近学了IDEA和SpringBoot+MyBatis了,正所谓学以致用,于是用所学的来做项目,单元测试时报了下面的异常:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'adminController': Unsatisfied dependency expressed through field 'adminService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'adminService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'adminMapper' defined in file [E:\IDEA Project\shfw\target\classes\com\kvc\shfw\admin\mapper\AdminMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate

检查了一遍又一遍,特别是application.properties关于mapper.xml的配置,启动类是否添加Mapper的注解,serviceImpl是否引入了mapper的接口,发现都没问题,于是上网搜索,试了很多种办法,方法大抵也是说要去检查上面的那几项,可是我都检查了N回了,又按照网友给的方案,在pom.xml的<build></build>中加入下面的代码:

 <!-- 添加资源 -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- src/main/resources下的指定资源放行 -->
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>


结果依然无效,一筹莫展之际,只有把目光转向控制台,从控制台打印的信息入手,此时,下面的代码引起我的注意:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:426)

The following method did not exist:

    org.apache.ibatis.session.Configuration.setVfsImpl(Ljava/lang/Class;)V

The method's class, org.apache.ibatis.session.Configuration, is available from the following locations:

    jar:file:/C:/Users/shensh.CREATIVE/.m2/repository/org/mybatis/mybatis/3.2.8/mybatis-3.2.8.jar!/org/apache/ibatis/session/Configuration.class

It was loaded from the following location:

    file:/C:/Users/shensh.CREATIVE/.m2/repository/org/mybatis/mybatis/3.2.8/mybatis-3.2.8.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of org.apache.ibatis.session.Configuration

就是最后一行代码:Correct the classpath of your application so that it contains a single, compatible version of org.apache.ibatis.session.Configuration,把该行代码复制去搜索,有人说是jar冲突,而我的异常有提到mybatis-3.2.8.jar,会不会是mybatis jar冲突了呢,于是打开pom.xml,搜索mybatis,果不其然,有两个地方引入了关于mybatis中,一处是如下:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis.spring.boot.starter.version}</version>
</dependency>

另一处是:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.2.8</version>
</dependency>

我把后面这个引入去掉,重新启动,终于正常了。

这个问题给我体会是:

1.同样的异常,产生的原因有千奇百样种,不对着根源(控制台打印信息)去找解决方案,人云亦云,用别人的办法解决你的异常,由于异常产生的根源不同,那么这时问题解决不了的。我经常这样,异常产生了,一大堆英文,懒得去看,去翻译,直接复制到网上找解决办法,这点很不好,以后要痛改前非,遇到异常不慌张,不着急,静下心来好好理解下控制台的意思,再有针对性地寻求解决方案,远比遇到异常就像个无头苍蝇似的,到处乱撞,生搬硬套别人的解决办法,要强得多,要更快找到适合的解决办法。

2.mybatis-spring-boot-starter jar已经集成了mybatis的jar包了,不必要单独引入mybatis的jar了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

org.springframework.beans.factory.UnsatisfiedDependencyException异常问题的解决 的相关文章

随机推荐

  • 在centos官网下载系统镜像完整教程

    很多新手小白鼠想学习CentOS系统 不知道去哪里下载 随便去个第三方发现要么要注册 要么各种广告病毒 或好不容易找到官网 进去一看却一脸懵 不仅全英文 有些专业术语也不懂 下面我就带大家一起来学习一下如何在centos官网下载系统镜像 c
  • grpc使用总结(golang)

    1 环境安装 1 1 下载protoc程序 解压后 将protoc放入gobin目录中 wget https github com protocolbuffers protobuf releases download v24 0 rc2 p
  • 基于opencv的物体识别

    1 级联分类器 到底什么是级联分类器 其实就是把分类器按照一定的顺序联合到一起 一个分类器也许不好用 没关系 我给你多加几个 具体来说 OpenCV实现的Cascade 级联 分类器就是基于多个弱分类器对不同的特征进行依次处理 分类 来完成
  • 用PropertyDrawer自定义Inspector面板显示外观

    用PropertyDrawer自定义Inspector面板显示外观 2019年02月13日 11 53 25 萧 然 阅读数 22更多 个人分类 工具 版权声明 欢迎大家留言讨论共同进步 转载请注明出处 https blog csdn ne
  • Kotlin 25. Kotlin中如何引用其他xml中的view对象

    Kotlin 中如何引用其他xml中的view对象 比如 我们的 activity main xml 这么写
  • GPU是如何优化运行机器学习算法的?

    在机器学习中 绝大多数任务会涉及到耗费时间的大量运算 而且随着数据集的增加 运算量会越来越大 解决这个问题的一个方法就是使用多线程 在这篇文章中 我要结合代码介绍一下 GPU 加速 它是如何完成的 以及用于 GPU 任务的简单 API 下面
  • 三分钟入门Three.js:如何用JavaScript构建3D场景

    在Web开发中 三维图形越来越受到重视 而Three js作为一款基于WebGL的JavaScript 3D渲染库 为我们提供了一种简单 快捷的方式来创建复杂的3D场景 如果您刚开始学习Three js并想快速入门 那么本文将为您介绍如何用
  • 案例剖析

    产品与用户的交互离不开产品任务 尤其是B端产品 由多个任务构成 而每个任务的执行都对应着一或多条流程 流程完成的好坏与交互体验 产品目标的完成直接相关 产品流程优化是从企业整体业务流程目标出发 对当前流程进行充分梳理和显性化 在流程梳理清晰
  • 【MATLAB第11期】#源码分享

    MATLAB第11期 源码分享 时间序列数据绘图 横坐标更改为时间轴 横坐标轴参数更改 绘图问题解决方案 1 导入数据方式 识别时间数据 2 案例展示 1 打开数据 2 定义时间和数据 3 将时间数据转化为数值 4 绘图 绘图问题解决方案
  • AVRoutePickerView 和 MPVolumeView 投屏

    最近小萌的项目有投屏的需求 开始使用的是保利威的SDK 但是保利威的SDK不管iOS或者Android都是只支持乐播投屏 但是我们项目的需求是AirPlay投屏 在我查找很多资料的过程中发现AVRoutePickerView和MPVolum
  • Linux性能优化实战CPU篇之软中断(三)

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475目录 一 软中断
  • msvcr120.dll丢失怎样修复,学这三招就可以修复好

    年前才买的新电脑 今天在打开软件ps软件的时候 电脑就提升msvcr120 dll文件丢失 无法执行此代码 刚刚开始以为是电脑的系统没有装好 经过我一下午时间的研究 原来是电脑msvcr120 dll文件丢失一般都是下载到垃圾软件 导致ms
  • Linux 临时增加环境变量

    增加环境变量 export name value 改变PATH环境变量 export PATH value PATH 这种方法只能临时增加环境变量 关闭shell窗口再打开就失效
  • 如何制作启动盘U盘(纯净版无捆绑)

    如何制作启动盘U盘 纯净版无捆绑 第一步 进入网站下载最新的镜像文件 网站地址 https msdn itellyou cn 如图所示 找到需要下载的展开详细信息 把链接复制下来 打开迅雷软件 会弹出下载链接界面 第二步 下载 rufus
  • CAS和多线程密切相关的东西!

    compare and swap 寄存器A的值和内存M的值进行比较 如果值相同 就把寄存器B和M的值进行交换 更多的时候 不关心寄存器中的数量是啥 更关心内存的数值 变量的值 CAS相当于是把开了新世界的大门 让咱们不加锁就能保证线程安全
  • Linux 搭建 MariaDB Galera Cluster 高可用集群

    MariaDB Galera Cluster 集群介绍 MariaDB Galera Cluster 下文简称MGC集群 是一套在MySQL innodb存储引擎上面实现多主 数据实时同步以及强一致性的关系存储架构 业务层面无需做读写分离工
  • rtklib中的基线约束应对观测条件糟糕的GNSS数据

    文章目录 问题 观测数据质量很差 使用基线约束后和约束前的结果对比 基线约束的原理 问题 观测数据质量很差 最近遇到一个难题 采集了500小时的数据 可是只有大约50 的的数据可以解算 呃 基线长度大约5公里 也算不上长基线 对这批数据进行
  • 串的模式匹配算法-BF算法+KMP算法

    BF算法 include
  • Spring Boot 中的 KafkaTemplate 是什么,原理,如何使用

    Spring Boot 中的 KafkaTemplate 是什么 原理 如何使用 Kafka 是一个流行的分布式消息系统 它可以用于在应用程序之间传递消息 Spring Boot 提供了对 Kafka 的支持 我们可以使用 Spring B
  • org.springframework.beans.factory.UnsatisfiedDependencyException异常问题的解决

    最近学了IDEA和SpringBoot MyBatis了 正所谓学以致用 于是用所学的来做项目 单元测试时报了下面的异常 Caused by org springframework beans factory UnsatisfiedDepe