亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

IDEA中@Autowired自動注入MyBatis?Mapper報紅警告的幾種解決方法

 更新時間:2024年02月21日 08:31:45   投稿:zx  
這篇文章主要介紹了IDEA中@Autowired自動注入MyBatis?Mapper報紅警告的幾種解決方法

今天在使用 IDEA 使用 MyBatis 的時候遇到了這種情況:

在這里插入圖片描述

可以看到 userMapper 下有個紅色的波浪警告,雖然代碼沒有任何問題,能正常運行,但是這個紅色警告在這里杵著確實讓人很窩心。

于是我在網(wǎng)上找了找,最終明白了原因所在:

  • 因為 IDEA 可以智能的理解上下文,然而 UserMapper 這個接口是 MyBatis 的 IDEA 理解不了。
  • 而 @Autowired 注解,默認情況下要求依賴對象(也就是 userMapper )必須存在。而 IDEA 認為這個對象的實例/代理是個 null ,所以就友好地給個提示。

然后最終的解決方案總結(jié)了幾個,按需使用把:

方法1:為 @Autowired 注解設(shè)置 required = false

使用 @Autowired 注解時,若希望允許 null 值,可設(shè)置 required = false,像這樣:

@Autowired(required = false)
private UserMapper userMapper;

這樣就不會有警告了。原因很好理解:IDEA 認為 userMapper 是個 null ,給了警告;加上 required = false 后,使用 @Autowired 注解不再去校驗 userMapper 是否存在了。也就不會有警告了。

總結(jié):

這種方式有點蛋疼。一個龐大的既有項目,可能到處都在引用 Mapper,總不能到處都補上 required = false 吧……而且對于新手/新員工,很難一眼看懂加 required = false 屬性只是為了解決 IDEA 的警告。

方法2:使用 @Resource 替換 @Autowired

像這樣:

@Resource
private UserMapper userMapper;

這樣也不會再有討厭的警告。如果你對原因感興趣,不妨了解一下《@Autowired 與@Resource的區(qū)別》。

總結(jié):

這種方式挺贊,但如果一個項目已經(jīng)大量使用 @Autowired ,然后為了個警告到處改成 @Resource ,也有點蛋疼。

方法3:在 Mapper 接口上添加 @Repository 注解

@Repository
public interface UserMapper extends Mapper<User> {

}
這樣能讓你的
@Autowired
private UserMapper userMapper;
不再報紅。

當(dāng)然,如果你用 @Component 替換 @Repository 也是可以的。原理大致:IDEA 不是認為 userMapper 是個 null 嘛…加個 @Repository 注解騙一下 IDEA 就OK了……

總結(jié):

這種方式比較贊,改動小,也簡單,我比較喜歡。

方法4:用 Lombok

@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TestService {

    private final UserMapper userMapper;
    ...

}

方法5:把 IDEA 的警告關(guān)掉。

個人沒試過,也沒有動力去試。沒有提示的 IDEA 是沒有靈魂的,我從來不去修改 IDEA 的任何警告設(shè)置。

方法6:安裝 mybatis plugin 即可解決該問題。

到此這篇關(guān)于IDEA中@Autowired自動注入MyBatis Mapper報紅警告的幾種解決方法的文章就介紹到這了,更多相關(guān)IDEA @Autowired自動注入報紅警告 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot接口返回結(jié)果封裝方法實例詳解

    SpringBoot接口返回結(jié)果封裝方法實例詳解

    在實際項目中,一般會把結(jié)果放在一個封裝類中,封裝類中包含http狀態(tài)值,狀態(tài)消息,以及實際的數(shù)據(jù)。這里主要記錄兩種方式,通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-09-09
  • Java Gradle項目中的資源正確獲取方式

    Java Gradle項目中的資源正確獲取方式

    這篇文章主要介紹了Java Gradle項目中的資源正確獲取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Java?Lambda表達式常用的函數(shù)式接口

    Java?Lambda表達式常用的函數(shù)式接口

    這篇文章主要介紹了Java?Lambda表達式常用的函數(shù)式接口,文章基于Java?Lambda表達式展開對常用的函數(shù)式接口的介紹,具有一的的參考價值需要的小伙伴可以參考一下
    2022-04-04
  • Java中BigDecimal類的add()的使用詳解

    Java中BigDecimal類的add()的使用詳解

    這篇文章主要介紹了Java中BigDecimal類的add()的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java中的前++和后++的區(qū)別示例代碼詳解

    java中的前++和后++的區(qū)別示例代碼詳解

    這篇文章主要介紹了java中的前++和后++的區(qū)別示例代碼詳解,其實大家只要記住一句話就可以了,前++是先自加再使用而后++是先使用再自加,本文通過代碼給大家詳細解說,感興趣的朋友跟隨小編一起看看吧
    2020-06-06
  • 基于Spring的注解@Qualifier小結(jié)

    基于Spring的注解@Qualifier小結(jié)

    這篇文章主要介紹了Spring的注解@Qualifier小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java實現(xiàn)String類型和Date類型相互轉(zhuǎn)換

    java實現(xiàn)String類型和Date類型相互轉(zhuǎn)換

    很多人表示,java將string類型轉(zhuǎn)為date類型不知道應(yīng)該怎樣做,本文就來介紹一下java實現(xiàn)String類型和Date類型相互轉(zhuǎn)換,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 使用@RequestBody傳遞多個不同對象方式

    使用@RequestBody傳遞多個不同對象方式

    這篇文章主要介紹了使用@RequestBody傳遞多個不同對象方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java 學(xué)習(xí)筆記(入門篇)_多選擇結(jié)構(gòu)switch語句

    java 學(xué)習(xí)筆記(入門篇)_多選擇結(jié)構(gòu)switch語句

    在java中為多路分支選擇流程專門提供了switch語句,switch語句根據(jù)一個表達式的值,選擇運行多個操作中的一個,感興趣的朋友可以了解下
    2013-01-01
  • springboot?log4j2日志框架整合與使用過程解析

    springboot?log4j2日志框架整合與使用過程解析

    這篇文章主要介紹了springboot?log4j2日志框架整合與使用,包括引入maven依賴和添加配置文件log4j2-spring.xml的相關(guān)知識,需要的朋友可以參考下
    2022-05-05

最新評論