idea springBoot项目自动注入mapper为空报错的解决方法

在SpringBoot项目中,如果使用了MyBatis作为持久层框架,使用自动注入时可能会遇到mapper报空指针异常的问题。这是因为在自动注入时,SpringBoot无法正确识别MyBatis的Mapper接口,需要进行一些额外的配置。
解决这个问题的方法有两种:

1.在Mapper接口上添加注解
在Mapper接口上添加@Mapper注解,告诉SpringBoot这个接口是一个Mapper接口,需要进行代理。示例如下:

@Mapper
public interface UserMapper {
    // ...
}

2.手动配置Mapper扫描路径
在application.properties或application.yml中手动配置Mapper扫描路径,告诉SpringBoot扫描哪些包下的Mapper接口。示例如下:
在application.properties中配置:

mybatis.mapper-locations=classpath:mapper/*.xml

在application.yml中配置:

mybatis:
  mapper-locations: classpath:mapper/*.xml

需要注意的是,这里的mapper/*.xml是指Mapper接口所对应的XML文件存放的路径,如果使用注解方式配置SQL语句,则可以不用配置XML文件路径。
通过以上两种方式进行配置后,就可以在使用自动注入时正确注入Mapper接口了。

最后,如果以上的都做了还是报空的话检查一下是不是粗心的在controller层没有注入mapper,例如

如果是新new的对象的话引用的注入对象不是自动注入spring容器里的对象,所以会报空,演戏也要演全套,在controller层也使用@Autowird注入吧

到此这篇关于idea springBoot项目自动注入mapper为空报错的解决方法的文章就介绍到这了,更多相关springBoot 自动注入mapper为空内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Idea工具中使用Mapper对象有红线的解决方法

    目录 背景: 问题描述 原因分析: 解决方案 1.修改idea 配置 参考链接: 背景: IDEA开发工具,springboot +mybatis项目 (这个是不需要改的,也不算是问题,因为项目并不会报错,只是作者好奇找了下问题,并记录一下) 问题描述 mapper对象在service层有红线,项目可以正常使用,想知道为什么会出现这种情 原因分析: @Autowired 默认是要求注解对象不为空 @Autowired 默认是要求注解对象不为空,IDEA在自动检测时认为mapper的实例是null

  • 解决idea 从mapper方法直接点进xml文件的问题

    使用Free Mybatis plugin 1. 2. 3. 4.重启以后mapper方法会有个箭头,ctrl+alt+左键 可以进入到xml文件里. xml文件里可以通过ctrl+左键进入到mapper文件里 补充:idea编译时找不到mapper.xml文件 idea默认是不编译 src\main\java下的xml文件的,所以造成classes目录下没有xml文件,有两个解决方案: 1. 在src\mian\resources下创建一个文件夹存放mapper文件. 2.在pom.xml下加

  • IDEA中没有Mapper.xml模板选项的处理方法

    🎃New的时候没有Mapper.xml选项 在IDEA中导入模板即可 模板类容,复制粘贴即可 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace=""> </mapper> 再New的时候就会有MybatisMapper选项了 到此这篇关于IDEA中没有Mapper.xml模板的文章就介绍到这了,更多相关idea Mapper.xml模板内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • IDEA 项目创建Mapper的xml文件的方法

    为了方便创建mapper的xml文件,所以可以自定义一个模板文件,以后用起来很方便. 1.打开设置 2.搜索 File and Code Templates,进行如下操作 模板代码附上 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.o

  • 解决Mybatis在IDEA中找不到mapper映射文件的问题

    刚开始在IDEA中做用Mybatis查数据库中的数据时,报mapper映射文件找不到,害的我检查了好几次配置的路径是不是正确,但是看了好几遍都没有发现有拼写错误.(我记得以前在eclipse中这样写是没问题的) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" &qu

  • IDEA 插件 mapper和xml互相跳转操作

    安装Free Mybatis plugin即可 安装MyBatisCodeHelper插件(推荐) 补充:IDEA插件(mybatis框架下mapper接口快速跳转对应xml文件) Flie(文件)->setting(设置)->Plugins->Marketplace 然后搜索 Free Mybatis Plugin下载 以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们.如有错误或未考虑完全的地方,望不吝赐教.

  • idea springBoot项目自动注入mapper为空报错的解决方法

    在SpringBoot项目中,如果使用了MyBatis作为持久层框架,使用自动注入时可能会遇到mapper报空指针异常的问题.这是因为在自动注入时,SpringBoot无法正确识别MyBatis的Mapper接口,需要进行一些额外的配置.解决这个问题的方法有两种: 1.在Mapper接口上添加注解在Mapper接口上添加@Mapper注解,告诉SpringBoot这个接口是一个Mapper接口,需要进行代理.示例如下: @Mapper public interface UserMapper {

  • SpringBoot项目中分页插件PageHelper无效的问题及解决方法

    在Springboot项目中使用分页插件的时候 发现PageHelper插件失效了 我导入的是: 后来才发 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> </dependency> 现 PageHelper若要在Springbo

  • Springboot项目因为kackson版本问题启动报错解决方案

    问题现象 org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat     at org.springframew

  • vue init webpack 建vue项目报错的解决方法

    使用vue init webpack 创建vue项目时报如下错误: vue init webpack my-project C:\Users\computer\AppData\Roaming\npm\node_modules\vue-cli\bin\vue-init:60 let template = program.args[0] ^^^ SyntaxError: Block-scoped declarations (let, const, function, class) not yet s

  • 详解Vue项目在其他电脑npm run dev运行报错的解决方法

    一个 Vue 项目从一台电脑上传到 github 上之后,再另外一台电脑上 git clone .并使用 npm run dev 或 npm run start 发生以下报错的解决方法. 报错原因 缺少 node_modules 里面的依赖.在项目目录下使用 npm install 然后再 npm run dev. 如果在这一步当中, npm install 执行的过程中,处于一直卡顿的状态.说明网络状况不佳.建议使用 cnpm 淘宝源. 淘宝源 使用 cnpm -v 查看是否已经安装 cnpm

  • bootstrap+jquery项目引入文件报错的解决方法

    做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌张,终结起来也就几种类型的错误,在开发中每次遇到错误都善于总结,下次在看到就会胸有成竹知道是什么情况了,以下是在开发过程中总结的一些错误以及错误的解决方法. 报错一:Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: jQuery is not defined 错误原因:文件

  • Springboot 跨域配置无效及接口访问报错的解决方法

    跨域配置如下,Springboot 版本为 2.4.1 ///跨域访问配置 @Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); //sessionid 多次访问一致 co

  • springboot新建项目pom.xml文件第一行报错的解决

    目录 springboot新建项目pom.xml文件第一行报错 新建一个测试项目 下面是文件 解决这个问题只需要 springboot创建过程中pom.xml报错 问题出现原因 解决办法 springboot新建项目pom.xml文件第一行报错 新建一个测试项目 发现创建完毕pom.xml文件报错,提示 Description Resource Path Location Type Unknown pom.xml /demo line 1 Maven Configuration Problem

  • SpringBoot上传临时文件被删除引起报错的解决

    目录 上传临时文件被删除引起报错的解决 1.前言 在项目中使用到了SpringBoot的上传实现了一个excel导入功能,上线后稳得一批,但突然有一天发现,导入失败报错: location [/tmp/tomcat.xxx.8551/work/Tomcat/localhost/ROOT] is not valid 详见如图 2.问题分析 在SpringBoot项目启动后,系统会在'/tmp'目录下自动的创建以下几个文件; hsperfdata_root tomcat.************.8

  • springboot配置mysql数据库spring.datasource.url报错的解决

    目录 springboot配置mysql数据库spring.datasource.url报错 springboot下datasource连接配置 基本设置 datasource JPA jooq h2 JTA springboot配置mysql数据库spring.datasource.url报错 spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8 很常规地配置了这个mysq

随机推荐