国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了已解決:IDEA中@Autowired自動注入MyBatis Mapper報紅警告的幾種解決方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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

已解決:IDEA中@Autowired自動注入MyBatis Mapper報紅警告的幾種解決方法,intellij-idea,mybatis,java

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

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

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

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

方法1:為 @Autowired 注解設置 required = false

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

1 @Autowired(required = false)
2 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;
不再報紅。

當然,如果你用 @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 的任何警告設置。

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

如果我的內(nèi)容對你有幫助,請點贊,評論,收藏。創(chuàng)作不易,大家的支持就是我堅持下去的動力!
已解決:IDEA中@Autowired自動注入MyBatis Mapper報紅警告的幾種解決方法,intellij-idea,mybatis,java文章來源地址http://www.zghlxwxcb.cn/news/detail-828930.html

到了這里,關(guān)于已解決:IDEA中@Autowired自動注入MyBatis Mapper報紅警告的幾種解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 解決自動注入Mapper找不到這個bean@Repository作用

    解決自動注入Mapper找不到這個bean@Repository作用

    在沒有添加@Repository時,idea會報警告,提示找不到這個bean,可以直接忽略即可。 不添加@Repository不會影響代碼運行 ?當我們在對應Mapper中添加@Repository后 對應的userMapper不再爆紅? ? ?@Repository的作用: @Repository 注解組件可以 將持久層做一個標記,自動處理數(shù)據(jù)庫操作產(chǎn)生的

    2024年02月12日
    瀏覽(25)
  • 使用 @Autowired 為什么會被 IDEA 警告,應該怎么修改最佳?

    使用 @Autowired 為什么會被 IDEA 警告,應該怎么修改最佳?

    # 問題原因 關(guān)于這個問題,其實答案相對統(tǒng)一,實際上用大白話說起來也容易理解。 1.初始化問題 先看一下Java初始化類的順序:父類的靜態(tài)字段 父類靜態(tài)代碼塊 子類靜態(tài)字段 子類靜態(tài)代碼塊 父類成員變量 父類構(gòu)造代碼塊 父類構(gòu)造器 子類成員變量 子類構(gòu)造代碼塊 子類構(gòu)

    2024年02月13日
    瀏覽(24)
  • mybatis警告: No MyBatis mapper was found in ‘[com.**]‘ package. Please check your configuration.

    mybatis警告: No MyBatis mapper was found in ‘[com.**]‘ package. Please check your configuration.

    出現(xiàn)的錯誤No?MyBatis?mapper was found ? ?解決辦法: ?在你的啟動類上加上 MapperScan 注解,里面寫上你的dao 目錄,如果存在多個可以使用 * 號代替,或者在中括號中使用 逗號隔開寫多個比如: ?使用mybatis的話需要在 application.yml 或application.peoperties 文件里 使其項目加載的時候加

    2024年02月11日
    瀏覽(27)
  • 【問題記錄】IDEA Mybatis *Mapper.xml 中 sql 無提示、無高亮、格式化失效問題 (已解決)

    【問題記錄】IDEA Mybatis *Mapper.xml 中 sql 無提示、無高亮、格式化失效問題 (已解決)

    【 問題 】 先說版本,win 11,idea 2023.1 如標題,想去格式化mybatis中寫的sql,但是ctrl alt L 一頓處理,其中的sql沒有按照sql命令的格式去格式化,此外寫sql 無提示也無高亮 【 問題示例 】 未格式化前,顯然格式已經(jīng)差不多了,按理來說再格式化也就稍微調(diào)整 但格式化的結(jié)果是

    2024年02月04日
    瀏覽(43)
  • Idea添加mybatis的mapper文件模版

    Idea添加mybatis的mapper文件模版

    針對Java開發(fā)人員,各種框架的配置模版的確是需要隨時保留一份,在使用的時候,方便復制粘貼,但是也依然不方便,我們可以給開發(fā)工具(IDE)中添加配置模版,這里我介紹下使用idea開發(fā)工具,如何添加mybatis的mapper配置模版(當然使用SpringBoot減少大量配置,但是定制化的

    2024年02月13日
    瀏覽(19)
  • @Autowired 注入為null 的原因與解決方式

    我們經(jīng)常會通過@Autowired注解將某個類注到另一個類中,但是會發(fā)現(xiàn)注不進去,報NULL。 可能的原因有一下幾種: (1)該類沒有托管給spring 管理 一般在類的上面添加@Component?就可以了 (2)你的這個類有被new出來的實例的,new 過的對象不會交給Spring容器管理 所以里面的 ser

    2024年02月11日
    瀏覽(12)
  • 完美解決:IDEA中maven依賴報紅

    完美解決:IDEA中maven依賴報紅

    已解決:IDEA中 maven依賴報紅 已解決:父工程 dependencyManagement里面依賴 報紅 目錄 問題一 1.問題描述 2.解決過程 問題二 1.問題描述 2.解決過程 在做springcoud項目時,父項目依賴都沒有問題,但寫子項目的依賴時就爆紅了 分析原因:首先遇到這樣的問題,肯定是因為idea在maven倉

    2024年02月09日
    瀏覽(27)
  • 關(guān)于在 springboot 中使用 @Autowired 注解來對 TemplateEngine 進行自動裝配時,無法注入的問題。

    關(guān)于在 springboot 中使用 @Autowired 注解來對 TemplateEngine 進行自動裝配時,無法注入的問題。

    本文是基于江南一點雨的 Spring Boot+Vue 系列視頻教程第 三 章的第三節(jié),詳情參考Spring Boot+Vue系列視頻教程 在觀看學習這一節(jié)時,發(fā)現(xiàn)當進行手動渲染 Thymeleaf 模板時,通過 @Autowired 注解來對 TemplateEngine 進行自動裝配時,發(fā)現(xiàn) idea 對其顯示 No beans of \\\'TemplateEngine \\\' type of found。

    2024年02月02日
    瀏覽(30)
  • idea寫sql語句快捷鍵提醒,mapper注解開發(fā),mybatis

    idea寫sql語句快捷鍵提醒,mapper注解開發(fā),mybatis

    第一步:注入SQL語言 1.顯示上下文操作(沒有這個選項的話就選中sql然后直接alt+回車快捷鍵) 2.注入語言或引用 3.mysql 第二步:配置MySQL數(shù)據(jù)庫連接 1.首先點擊側(cè)邊的數(shù)據(jù)庫,再點擊上面的加號 2.點擊數(shù)據(jù)源,然后找到MySQL并點擊 3.配置數(shù)據(jù)庫信息(填寫賬號密碼后點擊測試

    2024年01月16日
    瀏覽(18)
  • 解決IDEA中maven依賴報紅的問題

    解決IDEA中maven依賴報紅的問題

    在使用IDEA進行編程時,發(fā)現(xiàn)maven依賴中有很多報紅現(xiàn)象,如下圖所示: 雖然不太影響項目運行,但也確實是個問題 原因:造成這種現(xiàn)象主要原因就是 由于網(wǎng)絡原因?qū)е聸]有將Maven的依賴下載完整 ,就出現(xiàn)很多以 .lastUpdated 結(jié)尾的文件 刪除maven倉庫所有以.lastUpdate結(jié)尾的文件,

    2024年02月11日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包