溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

@Autowired注解注入的xxxMapper報錯怎么辦

發(fā)布時間:2022-03-04 14:09:20 來源:億速云 閱讀:220 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了@Autowired注解注入的xxxMapper報錯怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    @Autowired注解注入的xxxMapper報錯

    項目場景

    Mybatis-Plus測試

    問題描述

    在Mybatis-Plus場景的測試中發(fā)現(xiàn),通過@Autowired注解注入的userMapper會報錯

    @Autowired注解注入的xxxMapper報錯怎么辦

    這是因為UserMapper 并不是一個可以創(chuàng)建出對象的一個類,而是一個接口。

    @Autowired注解注入的xxxMapper報錯怎么辦

    @Override
            public void run() {
                bytes = mmInStream.read(buffer);
                mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
            }

    解決方案

    方案一:

    通過添加@Repository注解。

    @Autowired注解注入的xxxMapper報錯怎么辦

    方案二:

    在不使用@Repository注解的情況下,可以通過將@Autowired注解改為@Resource注解來實現(xiàn)注入。

    @Autowired注解注入的xxxMapper報錯怎么辦

    分析

    因為沒有實現(xiàn)接口所以@Autowired會報錯

    1、@Autowired默認按照byType方式進行bean匹配,@Resource默認按照byName方式進行bean匹配

    2、@Autowired是Spring的注解,@Resource是J2EE的注解,這個看一下導(dǎo)入注解的時候這兩個注解的包名就一清二楚了

    Spring屬于第三方的,J2EE是Java自己的東西,因此,建議使用@Resource注解,以減少代碼和Spring之間的耦合。

    @Autowired無法加載Mapper,報錯404或者500

    當我一直在排錯的時候,尋找注解少添加或者數(shù)據(jù)庫無法拿到文件的時候,粗心大意蒙蔽了我。。

    當@Autowired無法加載Mapper,報錯404或者500的時候,要多關(guān)注以下幾點

    是否包名一致,加載Mapper這個接口的時候,包名是否是一致的

    @Autowired注解注入的xxxMapper報錯怎么辦

    是否在 private XXXMapper xxxmapper;上加入了Autowired。如果啟動類無法啟動顯示,必須要加(request = false)

    @Autowired注解注入的xxxMapper報錯怎么辦

    啟動類一定要不要放在java包下,要跟你的com.xxxx這個包下

    @Autowired注解注入的xxxMapper報錯怎么辦

    感謝你能夠認真閱讀完這篇文章,希望小編分享的“@Autowired注解注入的xxxMapper報錯怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI