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

SpringBoot @PropertySource與@ImportResource有什么區(qū)別