基于Spring整合mybatis注解扫描是否成功的问题
作者:一步两步走呀走 发布时间:2023-01-23 18:29:22
Spring整合mybatis注解扫描是否成功
IDEA spring整合mybatis会使用注解扫描的配置
<context:component-scan base-package="/>
不管是使用@ Component、@Service、@Controller还是Repository,都是spring ioc操作bean的注解,其实际功能都是一样的,都是用来创建bean实例对象的。
正常情况下,如果自动扫描陈宫,IDEA类的界面在左侧会有绿色的C标记,如图所示。
AutoWired注解下面的类属性左侧也会有一个灰色的箭头和绿色的圆的标记,如果没有配置成功,那么就不会有这两个标记。
对于没有配置成功的情况,可以点击Project Strcuture ,点击modules,模块的srping部分,点击图中的加号,选择模块下面框里的所有xml文件,导入就可以了。
Mybatis注解@MapperScan扫描包报:Invalid bound statement (not found)
前几天,因为无知,将@MapperScan的路径修改到dao的上一层,如下:
在此情况下,对dao层进行Junit测试,测试通过;但对service层测试,则报错,报错如下:
于是乎我就找了度娘,很多老铁也给了各种解决方法(以下解决方法取自网络):
1.检查xml文件所在package名称是否和Mapper interface所在的包名。
2.UserDao的方法在UserDao.xml中没有,然后执行UserDao的方法会报此。
3. UserDao的方法返回值是List<User>,而select元素没有正确配置ResultMap,或者只配置ResultType。
4. 如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存,问题解决。
5.看下mapper的XML配置路径是否正确
但是我没有在上面的描述中解决我所报的错误,而我又是用springboot的注解模式的,于是我就对报错中的cachedMapperMethod
进行debug测试,找到了问题所在。
通过Junit测试dao层,得到debug相关信息,并没有任何异常,如下:
通过Junit测试service层,得到debug相关信息,如下所示,发现了问题所在,service接口也被mybatis接管了,而@MapperScan
作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。
来源:https://blog.csdn.net/Tec_Xie/article/details/119208155


猜你喜欢
- 众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现
- 无平台限制,依赖于快递api网接口 ----------------实体类 [DataContract]  
- 本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void
- 前言二进制文件读写两个重要的函数 , fread 和 fwrite , fread 用于读取文件 , fwrite 用于写出文件 ;frea
- 自动生成的代码报错解决办法:把自动xml文件中自动生成的二级缓存注释掉来源:https://blog.csdn.net/weixin_447
- 1、背景我有一堆学生数据,其中湖北省的学生需要排在所有数据的最前面。其余省正序排序,对于同一个省的数据,按照年龄倒序排序。2、分析对于上方的
- 在工作中,我们经常使用线程池,但是你真的了解线程池的原理吗?同时,线程池工作原理和底层实现原理也是面试经常问的考题,所以,今天我们一起聊聊线
- 本文实例讲述了Android启动画面的实现方法。分享给大家供大家参考。具体分析如下:在应用程序中经常用到启动画面,会启动一个后台线程为主程序
- 面试题:1同步方法和同步块,哪种更好?2.如果同步块内的线程抛出异常会发生什么?1. 同步方法和同步块,哪种更好?同步块更好,这意味着同步块
- 一、DurationDuration主要用来衡量秒级和纳秒级的时间,使用于时间精度要求比较高的情况。先来看看Duration的定义:publ
- 本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列
- 单例模式一个类只有一个实例,并且可以全局访问使用应用场景如账户管理类,数据库操作类等(某个对象频繁被访问使用)常用方式饿汉式懒汉式同步加锁D
- 宏定义与预处理命令预处理阶段:处理宏定义与预处理命令;编译期:检查代码,分析语法、语义等,最后生成.o或.obj文件;链接期:链接所有的.o
- 鼠标事件监听机制的三个方面:1.事件源对象:事件源对象就是能够产生动作的对象。在Java语言中所有的容器组件和元素组件都是事件监听中的事件源
- 前言Android作为一个通用的移动平台,其首要的功能就是通话、短信以及上网等通信功能。那么,从系统的角度来看,Android究竟是怎么实现
- 1.什么是Spring Boot为什么要学Spring Boot?Spring 的诞生是为了简化 Java 程序的开发的, Spring B
- 本文实例讲述了Android编程之交互对话框。分享给大家供大家参考,具体如下:1. 在Android SDK中,虽然有许多的窗口,有些类似M
- 一、maven项目的目录结构pom文件定于了一个maven项目的maven配置,一般pom文件的放在项目或者模块的根目录下。maven的遵循
- 前言CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步回调、流
- 今天在码代码的时候突然想到这个问题,觉得有点困惑。在网上也翻阅不少帖子其中有一个帖子给了我一个思路,其实也是解释了基础概念。概念一:try