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 @ 2024-04-15 16:46  天航星  阅读(170)  评论(0编辑  收藏  举报