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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

@Mapper,@MapperScan与@Repository区别

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

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

用@Mapper直接在接口中寫 ,編譯時自動生成實現類,具體寫法見下圖。

如果需要讓多個接口都變成實現類,用@Mapper一個個添加太麻煩,這時我們在Springboot啟動類添加@MapperScan,指定要掃描的mapper的包的路徑,然后包下面的所有接口在編譯之后都會生成相應的實現類,實現批量添加@Mapper注解。

根據百度結果,@Mapper = @MapperScan(自動掃描配置)+Repository,單獨有Mapper的時候,Autowired會報錯,但可以運行。

簡而言之,批量用@MapperScan,單個@Mapper

注:

@MapperScan用來掃描定義包下的所有的接口,給接口都生成一個bean(經測試,即便bean已經存在,@MapperScan還是會將這些接口再注冊一個bean,導致出錯)。

其源碼里有個annotationClass,默認值是Annotation.classs。

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

?注解如下所示加個參數,就能解決上面的問題。

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

? 經驗證,一些無關的接口不再注冊為一個bean。

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。