IDEA @Autowired不显示红线

IDEA 中,@Autowired 显示红线一般情况是注入 Mapper 或者 Dao 时出现的,如下图:

这个报错是因为 Mapper 或者 Dao 上没有加 @Repository 或者 @Mapper@Autowired 注入时就判断为这不是一个 Bean。

不建议通过加上面两个注解的方式解决这个问题,因为没有必要。

SpringBoot 启动类上的 @MapperScan("com.sevnce.**.mapper") 已经扫描了所有的 Mapper 进行注入,不需要再加注解进行注入。

针对这一情况,有如下解决办法:

  • 一般 Mapper 都有对应的 Service 进行封装,改为注入 Service 就可以避免这个问题,且更加符合调用规范(推荐)。
  • 如果没有对应的 Service 进行封装,或者封装的 Service 不能满足业务需求,必须用 Mapper,那建议不管(虽然这样显示红线,但并不影响代码运行)。
  • 如果实在强迫症受不了这个红线,建议将 @Autowired 改为 @Resource,即可解决这个问题。
  • 虽然也可以通过 IDEA 设置的方式不显示红线,但不推荐这样做,因为这样有可能会忽略其他影响代码运行的红线提示。
posted @   天航星  阅读(293)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示