IDEA提示找不到Mapper接口:Could not autowire.No beans of ‘xxxMapper‘ type found

这篇具有很好参考价值的文章主要介绍了IDEA提示找不到Mapper接口:Could not autowire.No beans of ‘xxxMapper‘ type found。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IDEA提示找不到Mapper接口:Could not autowire.No beans of ‘xxxMapper‘ type found

我们可以看到,上面的红色警告在提示我们,找不到 xxxMaper 这个类型的 bean。

为啥呢?

因为 @Mapper 这个注解是 Mybatis 提供的,而 @Autowried 注解是 Spring 提供的,IDEA能理解 Spring 的上下文,但是却和 Mybatis 关联不上。而且我们可以根据 @Autowried 源码看到,默认情况下,@Autowried 要求依赖对象必须存在,那么此时 IDEA 只能给个红色警告了。

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {

    /**
     * Declares whether the annotated dependency is required.
     * <p>Defaults to {@code true}.
     */
    boolean required() default true;

}

怎么解决?

虽然 IDEA 给了个红色警告,但是程序本身是没问题的,可以正常运行。可是代码里头有红色警告是相当的显眼的,不晓得情况的人还以为我么你的代码有问题呢?

下面我将会列出实践过的解决方案。
1.简单粗暴

直接关掉IDEA的警告提示,是不是很简单?是不是很粗暴?

2.麻烦粗暴,给@Autowried注解设置required=false

@Autowired(required = false)
private CarUserMapper carUserMapper;

这样就不会警告了。因为此时 @Autowried 不会再去校验 Mapper 接口是否为空。

3.@Autowried替换为@Resource

@Resource
private CarUserMapper carUserMapper;

此时也不会给红色警告了。@Resource 注解是 J2EE 提供的,而 @Autowried 注解是 Spring 提供的,他们如果感兴趣可以去看一下他们的区别。

4.在Mapper接口上加@Component

@Mapper
@Component
public inteface CarUserMapper{}

加这个注解呢,主要是为了让欺骗IEDA,让它以为CommetMapper也是一个Spring管理的Bean,这样子使用@Autowired注解注入也不会报错了

5.使用构造函数注入(Spring4.x推荐)

相信大家都有使用Lombok这个神器了,我们可以利用他的注解@RequiredArgsConstructor来直接构建构造函数即可,不过我尝试过单单使用@AllArgsConstructor也是没问题的。

当然了,大家如果注入的依赖比较少或者闲得蛋疼,还是可以自己来写构造函数的文章来源地址https://www.toymoban.com/news/detail-482665.html

到了这里,关于IDEA提示找不到Mapper接口:Could not autowire.No beans of ‘xxxMapper‘ type found的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Could not autowire. No beans of ‘DiscoveryClient‘ type found.

    一、导错了包 DiscoveryClient对应有两个包: org.springframework.cloud.client.discovery.DiscoveryClient; com.netflix.discovery.DiscoveryClient; 目前导入的包是: 改成第一个包,发现不再报红了。

    2024年02月11日
    浏览(43)
  • 解决SpringBoot项目中的报错:Could not autowire,no beans of “XXX“ type found

    问题:找不到mapper注入的bean,如图   分析:注入mapper有两种方式:  第一种:在启动类中添加  @MapperScan        然后在mapper的类中添加  @Repository 注解 第二种方法:直接在各个mapper类中添加@Mapper注解,但是一定要注意导入正确的包,否则解决不了这个异常;  很多新手

    2024年02月08日
    浏览(52)
  • A component required a bean of type ‘...Mapper‘ that could not be found问题解决

    错误如图 第一步 查看配置文件是否正确 第二步 查看标签是否正确 检查UserMapper上是否加上@Mapper 补充 第二步还是不行的话查看下POM文件是否导入mybatis-plus-boot-starter 配置mybatis-plus.mapper-locations无提示信息; 此时发现右上角出现感叹号,Cannot resolve configuration property ‘mybatis-

    2024年02月16日
    浏览(41)
  • idea 找不到类 could not find artifact

    刚开始接手一个项目,代码clone下来过后却跑不起来是一件很尴尬的事情,这里整理了找不到类报错的常见解决方案 1.刷新maven项目 (Generate Sources and update folders for all projects) 2.清理idea缓存 (这一步能解决大部分的问题)   (推荐勾选1 2行)一般来说勾选第二行就可以了

    2023年04月08日
    浏览(51)
  • Springboot idea 中 maven配置问题,找不到依赖:Could not find artifact xxxx

    现象:当我们从代码仓拉取新项目时,从该项目的开发同事拿到其maven的settings文件,作为项目的maven配置,为了是能找到工程中所依赖的包,能从远程仓下载下来。 然后本地仓的包,也从同事那边拷贝一份过来,直接运行mvn -install 会显示找不到xxxx包 1、本地我们也已经同步

    2024年02月09日
    浏览(47)
  • 解决自动注入Mapper找不到这个bean@Repository作用

    在没有添加@Repository时,idea会报警告,提示找不到这个bean,可以直接忽略即可。 不添加@Repository不会影响代码运行  当我们在对应Mapper中添加@Repository后 对应的userMapper不再爆红     @Repository的作用: @Repository 注解组件可以 将持久层做一个标记,自动处理数据库操作产生的

    2024年02月12日
    浏览(44)
  • maven:本地仓库有依赖但是idea报错找不到依赖Could not find artifact com.*.*

    控制台提示: 原因:是仓库中 _remote.repositories 的这样一个文件导致maven不会识别本地仓库已经存在的依赖。Maven在下载啊仓库找不到对应资源时会生成一个_remote.repositories为后缀的文件。 解决办法:去你的maven本地仓库下找到_remote.repositories和.lastUpdates文件删除。 注意: 如果

    2024年02月11日
    浏览(47)
  • idea的maven多模块项目启动时报错:Could not find artifact或者错误找不到符号

    1、问题描述: 多个项目中遇到idea的多模块maven项目,在启动的时候会报错: 【Could not find artifact,找不到包】 或者 【错误:找不到符号(但明明代码不报红)】 但是在别人的idea上却能正常启动。 2、解决方法: (1)原因说明: 后来发现,项目启动时,idea会自动调用mav

    2024年02月17日
    浏览(60)
  • 已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法

    今天在使用 IDEA 使用 MyBatis 的时候遇到了这种情况: 可以看到 userMapper 下有个红色的波浪警告,虽然代码没有任何问题,能正常运行,但是这个红色警告在这里杵着确实让人很窝心。 于是我在网上找了找,最终明白了原因所在: 因为 IDEA 可以智能的理解上下文,然而 UserM

    2024年02月20日
    浏览(50)
  • Git提示:ssh: Could not resolve hostname github.com: No address associated with hostname

    今天本地Git Push 代码推送远程分支,提示如下错误信息: Google 一下,大家的建议是重新配置ssh Key。 重新生成GitHub SSH Key 值,请参考如下指令 执行以上指令完成本机SSH Key值生成,并将生成的Key 拷贝至Git 账户/Setting/SSH key 设置。 温馨提示:SSH Key 生成时,会提示本地已经存在

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包