引入Mybatis-plus注入mapper报错报红解决方案

当在使用IDEA时,当使用的是Mybatis-plus时,在service中注入mapper时可能会遇到这样的问题:明明代码没有问题,可以运行,但是IDEA却给出了错误提示,显示红色波浪线,让人感到不舒服。这种情况的原因是什么呢?IDEA具有智能识别Spring上下文的能力,但是对于像 XxxxMapper 这样的接口(一般是Mybatis的)却无法理解。此外,@Autowired 注解默认要求依赖对象(比如 XxxxMapper)必须存在,而IDEA却认为这个对象的实例或者代理是null,因此会友好地给出警告提示。

针对这个问题,有几种解决方案:

1.为 @Autowired 注解设置 required = false

@Autowired(required = false)
private TestMapper testMapper;

这样就不会再有警告了。原理是通过设置 required = false,告诉IDEA不再校验 cashTicketMapper 的存在与否,从而消除警告。

2.使用 @Resource 替换 @Autowired

@Resource
private TestMapper testMapper;

这种方式也能消除警告,不过如果项目大量使用@Autowired,需要改成@Resource可能比较繁琐。

3.在Mapper接口上加上 @Repository 注解

@Repository
public interface TestMapper {
    // Mapper接口方法
}

这样也能消除警告,原理是通过@Repository注解或者@Component注解让IDEA认可该接口,不再提示错误。

4.使用Lombok

@Service
@RequiredArgsConstructor
public class TestService {
    private final TestMapper TestMapper;
}

Lombok生成的代码可以帮助消除警告,但如果手动写等效的Lombok代码,可能依然会出现警告,这可能是IDEA的Lombok插件的问题。

5.关闭IDEA的警告:

虽然这是一种方法,但不推荐,因为警告对于代码的规范性和可读性有一定帮助。
在这里插入图片描述

以上就是解决IDEA注入mapper时报错的几种方法,希望对你有所帮助。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值