Idea工具中使用Mapper對象有紅線的解決方法
背景:
IDEA開發(fā)工具,springboot +mybatis項目
(這個是不需要改的,也不算是問題,因為項目并不會報錯,只是作者好奇找了下問題,并記錄一下)
問題描述
mapper對象在service層有紅線,項目可以正常使用,想知道為什么會出現這種情
原因分析:
@Autowired 默認是要求注解對象不為空
@Autowired 默認是要求注解對象不為空,IDEA在自動檢測時認為mapper的實例是null,所以飄紅提醒一下。實際使用@MapperScan,是在項目啟動時才會去掃描mapper文件,并生成代理類,所以項目運行也不會報錯。
這里想到@Service注解,在controller層中使用的時候就沒有報紅,是因為含有@Component,
@Component作用就是把注解的類實例化到spring容器中。
解決方案
這里提供4中解決方式
1、修改idea 配置
下圖是通過點擊標紅的提示進入的,也可以從菜單上進入:file -> settings-> editor->inspections->autowiring for bean class 取消勾選,關閉 autowiring 校驗。
2、@Autowired 修改為 @Autowired(required = false)
3、@Autowired 修改為 @Resource
@Resource 不校驗是否為空
4、mapper 類上添加 @Repository 或者 @Component 或者lombok 中的@RequiredArgsConstructor
本質是加了 @Component 注冊到項目中,滿足IDEA的檢驗
參考鏈接:
到此這篇關于Idea工具中使用Mapper對象有紅線的文章就介紹到這了,更多相關idea 使用mapper紅線內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Springboot打成jar包thymeleaf的問題
這篇文章主要介紹了使用Springboot打成jar包thymeleaf的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java中的interrupt、interrupted和isInterrupted方法區(qū)別詳解
這篇文章主要介紹了Java中的interrupt、interrupted和isInterrupted方法區(qū)別詳解,interrupt用于中斷線程,調用該方法的線程的狀態(tài)將會被設置為中斷狀態(tài),線程中斷僅僅是設置線程的中斷狀態(tài)位,并不會停止線程,需要用戶自己去監(jiān)視線程的狀態(tài)并作出處理,需要的朋友可以參考下2023-12-12Mybatis自定義TypeHandler解決特殊類型轉換問題詳解
這篇文章主要介紹了Mybatis自定義TypeHandler解決特殊類型轉換問題詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11SpringBoot @PropertySource與@ImportResource有什么區(qū)別
這篇文章主要介紹了SpringBoot @PropertySource與@ImportResource有什么區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01