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 设置的方式不显示红线,但不推荐这样做,因为这样有可能会忽略其他影响代码运行的红线提示。
天河有尽身作涯,星海无边前是岸。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)