博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring整合mybatis接口无法注入问题
阅读量:4308 次
发布时间:2019-06-06

本文共 3041 字,大约阅读时间需要 10 分钟。

 

          在学习Spring完之后简单的了解了MyBatis。然后进行简单的整合,遇到MyBatista接口映射的Bean无法自动注入的问题;

代码异常:

线程“main”org.springframe .bean .factory中的异常。创建名为“UserController”的bean时出错:通过字段“userdao”表示的不满足的依赖关系;嵌套异常是org.springframe .bean .factory。BeanCreationException:在文件[C:\Users\li rui long\eclipse-workspace\MyBatis_Demo\build\classes\com\mybatis\dao\ userdao]中创建名为“userdao”的bean时出错。类]:在设置bean属性“sqlSessionFactory”时无法解析对bean“sqlSessionFactory”的引用;嵌套异常是org.springframe .bean .factory。BeanCreationException:在类路径资源[ApplicationContext]中定义名称为“sqlSessionFactory”的bean创建错误。:设置bean属性“dataSource”时不能解析对bean“dataSource”的引用;嵌套异常是org.springframe .bean .factory。BeanCreationException:创建名为“dataSource”的bean时出错:查找方法解析失败;嵌套异常是java.lang。IllegalStateException:未能从ClassLoader [jdk.internal.loader.ClassLoader . $AppClassLoader@77a567e1]内检类[org.apache.commons.dbcp2.BasicDataSource]

 

      异常提示,控制器层的Bean无法创建,原因是MyBatis对应的映射接口无法完成映射,无法生成DAO层的Bean;

    所以问题应该出现在XML文件里,

测试类,13行报错:

1 package com.mybatis.test; 2  3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5  6 import com.mybatis.controller.UserController; 7  8  9 public class Test_Controller {10 11     public static void main(String[] args) {12         // TODO Auto-generated method stub13         ApplicationContext app = new ClassPathXmlApplicationContext("ApplicationContext.xml");14         UserController coll = (UserController) app.getBean("UserController");15         coll.test();16     }17 18 }

对ApplicationContext.xml配置文件进行一步步排查:

 

 

  1. 检查扫描的包名,是否有写错或者少写的。
  2. 确定数据源的配置正常,我的问题就出在这里,修改数据库配置信息(密码等),看是否会报不一样的错,当还是原来的错,说明配置文件没有加载或者数据源错误。我用的DBCP数据源(需要导入两个包DBCP+连接池包),修改密码后还是报同样的错误所以我尝试着用Spring自带的数据源,解决了问题,正确代码:
    1 
    2
    13
    14 15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25 26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45 46
  3. 检查对应的依赖类,配置文件路径能否Ctrl进去。MyBatis的核心文件和映射文件路径是否正确。以下是我的代码:
  4.  
  5.  

    看Dao层的接口和Mapped的映射文件是否是在同一包下。

类似问题的博客:

https://blog.csdn.net/h363659487/article/details/74275972

https://blog.csdn.net/u012385190/article/details/53186552

         嗯嗯,第一次写这样的博客,希望会对大家有帮助!!,愿我们都被温柔以待!2019.4.21。

转载于:https://www.cnblogs.com/liruilong/p/10744962.html

你可能感兴趣的文章
$Poj1952\ $洛谷$1687\ Buy\ Low,Buy\ Lower$ 线性$DP+$方案计数
查看>>
linux文件夹打包命令
查看>>
运行cmd状态下MySQL导入导出.sql文件
查看>>
Hbase时间同步
查看>>
HBase1.0.0 实现数据增删查
查看>>
webpack4 入门配置研究
查看>>
if...else..的错误用法
查看>>
cURL模拟POST方式提交数据
查看>>
headroom.js插件使用方法
查看>>
Java 可变参数
查看>>
关闭和定时显示DIV
查看>>
screen
查看>>
iOS 动画基础总结篇
查看>>
Android ContentProvider
查看>>
史上最全最强SpringMVC详细示例实战教程
查看>>
class里面只能写以下5种
查看>>
《Vim实用技巧》阅读笔记 --- 移动及跳转
查看>>
C# 全角符号转半角
查看>>
python-2:工欲善其事,必先利其器 修改jupyter保存文件目录(亲测)
查看>>
Python 环境搭建
查看>>