测试SpringBoot的时候报错mapper未装载的解决方案:

1.报错信息和截图:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tang.testspringboot.TestSpringBootApplicationTests': Unsatisfied dependency expressed through field 'mapper': No qualifying bean of type 'com.tang.mapper.Mapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.tang.mapper.Mapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

已经把springboot的所有的依赖准备好了,mapper也写好了,在测试的时候报上面的错。

2.分析过程:

2.1SpringBoot装载类的机制:

看报错的意思是这个mapper的类没有放到springboot的容器里面,从spring的学习中应该知道,在注解方式的spring开发中只有一种方式将类放到容器里面,这种在spring的容器的配置类中直接开启一个ComponentScan扫描的注解,它会去扫描我们标记了@controller @Reposity @Service注解的这些类,从而把类放到容器中,最开始是不用扫,是我们把类的名字写到我们的bean文件里面即可。正好springboot也是这种机制,SpringBoot启动类上面的@SpringBootApplication里面有一个@ComponentScan,它可以扫描启动类同级及其子级包下的所有文件,并且把带有@Component、@Repository、@Service、@Controller的类注册到Spring容器。

@Component、@Repository、@Service、@Controller、@ComponentScan是Spring注解
所以@ComponentScan只能扫描@Component、@Repository、@Service、@Controller

@Mapper、@MapperScan是Mybatis注解,所以@MapperScan只能扫描@Mapper,所以要是在Mapper层要是使用了@Mapper注解,那么SpringBoot的@ComponentScan是扫描不到的,必须在启动类上面加上@MapperScan扫描。

2.2解决方案:

后面查我的Mapper类的代码,我发现mapper的代码我是用@Mapper来标准的,所以这样@ComponentScan扫描不到我们的Mapper类,那么我们就得在启动类上加上一个@MapperScan("com.xxx.mapper")即可解决问题。

2.3解决后结果截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python3.10安装教程

Python3.10安装 Python的安装按照下面几步进行即可,比较简单。 下载Python安装文件,打开Python的下载页面,我这里选择安装的版本是3.10.11,根据自己电脑版本选择对应安装包 安装包下载完毕后,按照步骤开始安装。选择…

620基于51单片机的密码锁设计[Proteus仿真]

620基于51单片机的密码锁设计[proteus仿真] 密码锁设计这个题目算是课 程设计和毕业设计中常见的题目了,本期是一个基于51单片机的密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥,私信…

springboot集成钉钉通知

目录 1.通过自定义机器人方式发送群消息 1.1说明 1.2发送普通消息示例(采用加签方式) 1.3注意事项 2.通过企业内部应用发送钉钉消息 2.1说明 2.2示例 2.3注意 1.通过自定义机器人方式发送群消息 1.1说明 官网地址: 自定义机器人发送…

2024年江苏省信息安全管理与评估理论题题库(单选120题,多选40题)

2024年江苏省信息安全管理与评估理论题题库(单选120题,多选40题) 因各方面原因,无法公开发布,只能设为vip文章,有需要的小伙伴可以看看。 单选题 PGP是一个基于下列哪个公钥加密体系的邮件加密软件?( )A.RSA B.Kerberos C.DES D.IDEA 防火墙通过( )控制来阻塞邮…

this.setState的注意事项

目录 1、this.setState的注意事项 2、是什么造成了this.setState()的不同步? 3、 那this.setState()什么时候同步,什么时候不同步? 3.1 经过React包装的onClick点击事件() 3.2 没经过React包装的 原生点击事件 …

嘘……快进来!这儿有最新版Microsoft照片程序的安装秘籍!(附安装引导程序下载)

网管小贾 / sysadm.cc 最近啊有不少小伙伴向我反馈,自个的 Windows 10 系统里边居然没有 Microsoft 照片 程序。 我觉得有点不可思议,为啥呢,因为他们的电脑是新买的! 你看哈,系统是 22H2 最新版,安装日期…

vscode打开c_cpp_properties.json文件的一种方式

步骤一 点击win32 步骤二 点击json 自动生成了

鸿蒙Harmony-线性布局(Row/Column)详解

人生的下半场,做个简单的人,少与人纠缠,多看大自然,在路上见世界,在途中寻自己。往后余生唯愿开心健康,至于其他,随缘就好! 目录 一,定义 二,基本概念 三&am…

如何使用“通义听悟”提高工作和学习效率

如何使用通义听悟提高工作和学习效率 通义听悟是一款利用人工智能技术,自动为音频和视频内容提供转写、翻译、总结、检索等功能的在线工具。它可以在会议、学习、访谈、培训等场景下,帮助您记录、阅读、整理、复习音视频信息,成为您的工作和…

FPGA 移位运算与乘法

题目: 已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效) 由题意可知: 复位信号高有效,低复位;在inpu_grant上升…

WorkPlus卓越的即时通讯工具,助力企业提升工作效率

在当今快节奏的商业环境中,高效沟通和协作是企业成功的关键。而即时通讯作为实现高效沟通的利器,成为了现代企业不可或缺的一部分。作为一款领先的即时通讯工具,WorkPlus以其卓越的性能和独特的功能,助力企业打造高效沟通和协作的…

HTTP API 认证技术详解(二):Digest Access Authentication

目录 什么是 Digest Access Authentication 认证 Digest Access Authentication 认证的原理 Digest Access Authentication 认证的安全性 使用 Golang 实现 Digest Access Authentication 使用建议 小结 HTTP API 认证技术主要用于验证客户端身份,并确保只有经…

docker应用:搭建uptime-kuma监控站点

简介:Uptime Kuma是一个易于使用的自托管监控工具,它的界面干净简洁,部署和使用都非常方便。 历史攻略: docker:可视化工具portainer docker-compose:搭建自动化运维平台Spug 开源地址: ht…

【NI 国产替代】PXIe‑6378,16路AI(16位,3.5 MS/s/ch),4路AO,48路DIO,PXI多功能I/O模块

PXIe,16路AI(16位,3.5 MS/s/ch),4路AO,48路DIO,PXI多功能I/O模块 PXIe‑6378是一款同步采样的多功能DAQ设备。 该模块提供了模拟 I/O、数字I/O、四个32位计数器和模拟和数字触发。 板载NI‑STC3…

class_3:lambda表达式

1、lambda表达式是c11引入的一种匿名函数的方式&#xff0c;它允许你在需要函数的地方内联的定义函数&#xff0c;而无需单独命名函数&#xff1b; #include <iostream>using namespace std;bool compare(int a,int b) {return a > b; }int getMax(int a,int b,bool (…

算法通关村第十六关—滑动窗口与堆结合(黄金)

滑动窗口与堆结合 堆与滑动窗口问题的结合 LeetCode239给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位&#xff0c;返回滑动窗口中的最大值。  对于最大值、K个最大这种场…

【Docker基础五】Dockerfile指令

Dockerfile 是一个文本文件&#xff0c;它包含了一系列的指令和参数&#xff0c;用来自动化构建 Docker 镜像的过程。每一个指令通常都会创建镜像的一层。下面是一些常用的 Dockerfile 指令。 1、FROM 语法&#xff1a;FROM <image>[:<tag>] [AS <name>]用…

大数据容器化

记录 知乎容器平台演进及与大数据融合实践 http://www.sykv.cn/cat/bigdata/4140.html Building online HBase cluster of Zhihu based on Kubernetes https://blog.csdn.net/mtj66/article/details/78803242

Golang 网络编程

TCP TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议 如何保证连接的可靠性&#xff1f; 三次握手四次挥手 三次握手 TCP 三次握手&#xff08;Three-way Handshake&#xff09;…

Spring MVC中的方法的返回值!!!

参考入门案例的工程代码&#xff1a;Spring MVC入门案例&#xff01;&#xff01;&#xff01;-CSDN博客 1.使用ModelAndView对象并返回 &#xff1a;这里我们在方法内部new了一个ModelAndView对象&#xff0c;通过这个对象&#xff0c;设置你想向jsp页面传达的信息。 modelA…