java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springBoot 自动注入mapper为空

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

作者:huang_sj502

这篇文章主要介绍了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为空内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文