日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

@Mapper,@MapperScan与@Repository区别

發(fā)布時(shí)間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @Mapper,@MapperScan与@Repository区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

從mybatis3.4.0開始加入了@Mapper注解,它可以在編譯之后自動(dòng)生成相應(yīng)的接口實(shí)現(xiàn)類,不用再寫如下圖所示的mapper映射文件。

用@Mapper直接在接口中寫 ,編譯時(shí)自動(dòng)生成實(shí)現(xiàn)類,具體寫法見下圖。

如果需要讓多個(gè)接口都變成實(shí)現(xiàn)類,用@Mapper一個(gè)個(gè)添加太麻煩,這時(shí)我們?cè)赟pringboot啟動(dòng)類添加@MapperScan,指定要掃描的mapper的包的路徑,然后包下面的所有接口在編譯之后都會(huì)生成相應(yīng)的實(shí)現(xiàn)類,實(shí)現(xiàn)批量添加@Mapper注解。

根據(jù)百度結(jié)果,@Mapper = @MapperScan(自動(dòng)掃描配置)+Repository,單獨(dú)有Mapper的時(shí)候,Autowired會(huì)報(bào)錯(cuò),但可以運(yùn)行。

簡(jiǎn)而言之,批量用@MapperScan,單個(gè)@Mapper

注:

@MapperScan用來(lái)掃描定義包下的所有的接口,給接口都生成一個(gè)bean(經(jīng)測(cè)試,即便bean已經(jīng)存在,@MapperScan還是會(huì)將這些接口再注冊(cè)一個(gè)bean,導(dǎo)致出錯(cuò))。

其源碼里有個(gè)annotationClass,默認(rèn)值是Annotation.classs。

Class<? extends Annotation> annotationClass() default Annotation.class;

?注解如下所示加個(gè)參數(shù),就能解決上面的問(wèn)題。

@MapperScan(basePackages = "com.zhi.test", annotationClass = Mapper.class)

? 經(jīng)驗(yàn)證,一些無(wú)關(guān)的接口不再注冊(cè)為一個(gè)bean。

(——引自關(guān)于MyBatis的@Mapper和@MapperScan注解的一點(diǎn)思考 - 玄同太子 - 博客園)

總結(jié)

以上是生活随笔為你收集整理的@Mapper,@MapperScan与@Repository区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。