首页 > 其他分享 >springboot项目Mapper注入失败:@org.springframework.beans.factory.annotation.Autowired(required=true)

springboot项目Mapper注入失败:@org.springframework.beans.factory.annotation.Autowired(required=true)

时间:2023-12-27 10:55:06浏览次数:39  
标签:Mapper springboot mapper 标签 required pom 注解

同事发给我一个项目,说启动时,报mapper无法注入,让我帮忙排查一下问题

记录一下我自己遇到这个问题的排查顺序

首先先排除以下问题:

  1.mapper类是否加入到ioc容器中(有没有使用@Mapper标签),如果报错是service层,那就看看是不是没有添加server标签

  2.检查项目是否扫描mapper类所在包的注解标签(检查mapper类是否在启动类所在包的子包下面)

  3.检查引入的mapper标签是否正确,import org.apache.ibatis.annotations.Mapper

  4.检查mapper.xml文件中的namespace与mapper接口文件的路径是否能对上

如果以上都能对上,就有可能是以下原因造成的

  1.检查pom文件中是否引入mybatis依赖,Mapper标签是由mybatis提供的

  2.检查pom文件中是否引入所需数据库的依赖

 

总结:

  对于springboot项目来说,只要你的类是创建在启动类所在包的子包下,那么无论你在类中添加什么注解,它是都能够扫描到的(springboot的约定俗成),如果添加注解后还报这个错,我能想到的有以下两种原因:

  一:是类没有在启动类所在包的子包下,这样springboot是没办法自动扫描到的,需要在启动类上添加MapperScan注解或者ComponentScan注解,然后指定路径,让ioc容器去扫描这个路径下的标签。

  二:如果路径正确、注解正确,还是报这个错,那么就有可能是其他位置出错,需要检查pom文件、properties或者yml配置文件,比如我同事这个代码就是pom文件中没有引入相关数据库的依赖导致的

 

如果有大佬还有其他的原因能够补充,希望可以在评论区里交流交流,拜谢!!!

标签:Mapper,springboot,mapper,标签,required,pom,注解
From: https://www.cnblogs.com/sjzchf/p/17930084.html

相关文章

  • SpringBoot自动配置原理
    通过@SpringBootConfiguration引入了@EnableAutoConfiguration(负责启动自动配置功能)@EnableAutoConfiguration引入了@Import注解Spring容器启动时:加载Ioc容器时会解析@Import注解@Import导入了一个deferredImportSelector,会使SpringBoot的自动配置类的顺序再最后,这样方便......
  • 一些基于SpringBoot2.X的后台管理系统,可以作为高校毕设项目、个人学习之用
    该酒店管理系统适用于各类酒店管理,用于提高酒店内部工作效率。主要是针对酒店内部工作人员即管理员和酒店普通员工设计的。主要是具备客房预订、退房、房间信息管理、员工管理、入住管理等模块,提高了酒店内部业务的运转效率,大大降低了成本;该系统基于SpringBoot+VUE+MyBatisPlus......
  • SpringBoot的编码方式
     方式1.使用配置文件的方式对字符进行编码1.第一种方式:在配置文件中(properties或者yaml文件中均可)添加:server.servlet.encoding.enable=true但是现如今的许多程序已经弃用了这种写法2.第二种方式:server.servlet.encoding.charset=UTF-8;server.servlet.encoding.force=......
  • 浅聊springboot的启动流程
    前言本文会对Springboot启动流程进行详细分析。但是请注意,Springboot启动流程是Springboot的逻辑,请千万不要将Springboot启动流程相关逻辑与Spring的相关逻辑混在一起,比如把Spring的bean生命周期的逻辑混在Springboot启动流程中,那么整个体系就复杂且混乱了。所以本文仅重点关注Spri......
  • SpringBoot实现热部署详解
    前言SpringBoot热部署是一种开发时极为有用的功能,它能够让开发人员在代码修改后无需手动重启应用程序就能立即看到变化的效果。以下是使用SpringBoot热部署的几个主要原因:1.提高开发效率热部署使开发人员能够更快地验证和测试他们的代码更改。无需手动重启应用程序,每次修改后只需......
  • springboot自动部署脚本
    #!/bin/sh##javaenvexportJAVA_HOME=/usr/local/jdk/jdk1.8.0_101exportJRE_HOME=$JAVA_HOME/jreAPI_NAME=apiJAR_NAME=$API_NAME\.jar#PID代表是PID文件PID=$API_NAME\.pid#使用说明,用来提示输入参数usage(){echo"Usage:sh执行脚本.sh[start|stop|re......
  • SpringBoot集成多个RabbitMq(多个MQ链接)
    ##2023年12月16日20:25:36 项目中使用RabbitMQ作为应用间信息互通,本次梳理下关于MQ的使用。1、引入依赖<!--引入依赖,使用v2.5.6版本--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot......
  • 基于SpringBoot+Vue的毕业设计系统的开发设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • SpringBoot项目导入的时候没有显示父工程
    一、出现错误导入选中要导入的项目的文件夹,然后点击OK,接下来一直next即可。但是导入完了之后没有出现父模块,只有子模块。二、修正错误CTRL+SHIFT+A打开下面的菜单输入maven,选择AddMavenProjects.选择你要导入的工程的pom文件,然后点击OK,父模块就导入了。三、较好的导入方法从......
  • 【SpringBootWeb入门-18】案例-准备工作
    1、案例前言在前面的章节中,我们学习完了后端springbootweb开发的基础知识、MySQL数据库以及Mybatis框架,接下来我们来完成一个Web开发的综合案例,通过这个案例我们学习到前端程序、后端程序以及数据库之间是如何交互协作的,同时通过这个案例我们也学习到根据接口文档、开发服务端接......