@Autowired注解注入的xxxMapper報(bào)錯(cuò)問題及解決
@Autowired注解注入的xxxMapper報(bào)錯(cuò)
項(xiàng)目場(chǎng)景
Mybatis-Plus測(cè)試
問題描述
在Mybatis-Plus場(chǎng)景的測(cè)試中發(fā)現(xiàn),通過@Autowired注解注入的userMapper會(huì)報(bào)錯(cuò)

這是因?yàn)閁serMapper 并不是一個(gè)可以創(chuàng)建出對(duì)象的一個(gè)類,而是一個(gè)接口。

@Override
public void run() {
bytes = mmInStream.read(buffer);
mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
}
解決方案
方案一:
通過添加@Repository注解。

方案二:
在不使用@Repository注解的情況下,可以通過將@Autowired注解改為@Resource注解來(lái)實(shí)現(xiàn)注入。

分析
因?yàn)闆]有實(shí)現(xiàn)接口所以@Autowired會(huì)報(bào)錯(cuò)
1、@Autowired默認(rèn)按照byType方式進(jìn)行bean匹配,@Resource默認(rèn)按照byName方式進(jìn)行bean匹配
2、@Autowired是Spring的注解,@Resource是J2EE的注解,這個(gè)看一下導(dǎo)入注解的時(shí)候這兩個(gè)注解的包名就一清二楚了
Spring屬于第三方的,J2EE是Java自己的東西,因此,建議使用@Resource注解,以減少代碼和Spring之間的耦合。
@Autowired無(wú)法加載Mapper,報(bào)錯(cuò)404或者500
當(dāng)我一直在排錯(cuò)的時(shí)候,尋找注解少添加或者數(shù)據(jù)庫(kù)無(wú)法拿到文件的時(shí)候,粗心大意蒙蔽了我。。
當(dāng)@Autowired無(wú)法加載Mapper,報(bào)錯(cuò)404或者500的時(shí)候,要多關(guān)注以下幾點(diǎn)
是否包名一致,加載Mapper這個(gè)接口的時(shí)候,包名是否是一致的

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

啟動(dòng)類一定要不要放在java包下,要跟你的com.xxxx這個(gè)包下

以上是我個(gè)人總結(jié)踩坑,希望大家面對(duì)Bug的時(shí)候還是要多加細(xì)心,多半是因?yàn)榇中拇笠鈱?dǎo)致,要么就是沒加注解,要么就是包名不一致,再或者就是啟動(dòng)類放在了Java包的下面。希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于ConditionalOnMissingBean失效問題的追蹤
這篇文章主要介紹了關(guān)于ConditionalOnMissingBean失效問題的追蹤方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
使用Maven搭建SpringMVC項(xiàng)目的步驟(圖文教程)
本篇文章主要介紹了使用Maven搭建SpringMVC項(xiàng)目的步驟(圖文教程),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
Spring Cloud項(xiàng)目前后端分離跨域的操作
這篇文章主要介紹了Spring Cloud項(xiàng)目前后端分離跨域的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Spring Boot 自定義數(shù)據(jù)源DruidDataSource代碼
這篇文章主要介紹了Spring Boot 自定義數(shù)據(jù)源DruidDataSource代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
SpringBoot事務(wù)鉤子函數(shù)的使用方式
本文介紹了SpringBoot中事務(wù)鉤子函數(shù)的使用方式,包括常見場(chǎng)景、使用方式等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
mybatis 忽略實(shí)體對(duì)象的某個(gè)屬性(2種方式)
這篇文章主要介紹了mybatis 忽略實(shí)體對(duì)象的某個(gè)屬性方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
java實(shí)現(xiàn)ThreadLocal線程局部變量的實(shí)現(xiàn)
本文主要介紹了java實(shí)現(xiàn)ThreadLocal線程局部變量的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

