最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中@Repository注解的作用和用法以及和@Mapper的區(qū)別詳析

 更新時間:2023年09月25日 15:42:47   作者:fenglin_smile  
這篇文章主要給大家介紹了關于Spring中@Repository注解的作用和用法以及和@Mapper的區(qū)別的相關資料,注解的作用是標識一個類為數(shù)據(jù)訪問對象,并由Spring框架進行實例化和管理,需要的朋友可以參考下

1、@Repository的作用

@Repository是屬于Spring的注解。它用來標注訪問層的類(Dao層),它表示一個倉庫,主要用于封裝對于數(shù)據(jù)庫的訪問。其實現(xiàn)方式與@Component注解相同,只是為了明確類的作用而設立。

即@Repository是@Component注解的一個派生品,與@Service和@Controller都可以理解為@Component注解的擴展。他們的作用都是在類上實例化bean,并把當前類對象的實現(xiàn)類交給spring容器進行管理。

換句話說,@Repository注解修飾哪個類表明這個類具有對數(shù)據(jù)庫CRUD的功能,用在持久層的接口上。

另外,作為spring的注解,他還能把所標注的類中拋出的數(shù)據(jù)訪問異常封裝為spring的數(shù)據(jù)訪問異常類型。

2、@Repository與@Service和@Component有什么區(qū)別?

@Repository作用如上所說。

@Service注解用來標注服務層中的類,用于處理業(yè)務邏輯。在使用@Service注解標記的類中,通常會注入@Reposity的類。@Component注解是通用的注解,用來標記所有被spring容器管理的組件。在使用@Component注解標記的類中,通常會注入@Service和@Repository標記的類。

本質上都是把實例化對象交給spring管理。

3、@Repository和@Mapper的異同

@Mapper是屬于mybatis的注解。在程序中,mybatis需要找到對應的mapper,在編譯時候動態(tài)生成代理類,實現(xiàn)數(shù)據(jù)庫查詢功能。@Mapper和@Repository注解的使用方式一樣,都是在持久層的接口上添加注解。

但是如果只是單獨的使用@Mapper注解的話,在idea中進行自動裝配的時候,會出現(xiàn)警告,提示找不到這個bean。但是這個不影響程序運行,可以直接忽略。

想要不出現(xiàn)這個警告,可以在idea設置中對這種警告進行忽略,也可以在使用@Mapper的地方同時使用@Repository注解。這樣spring會掃描@Repository并識別這個bean,就不會出現(xiàn)這個警告。

正常情況下的使用,我們都是使用@Mapper居多,而不使用@Repository注解。

不使用@Repository注解,而實現(xiàn)注入這個接口的實現(xiàn)類主要有以下3種方法:

1、在spring的配置文件中,配置了MapperScannerConfigure這個bean,他會掃描持久層接口創(chuàng)建實現(xiàn)類交給spring來管理。

2、接口使用@Mapper注解。

3、springboot的啟動類上使用@MapperScan注解,和MapperScannerConfigure的作用一樣。

4、正確的單獨使用@Repository

@Repository注解是用于標記數(shù)據(jù)訪問層的組件的注解,它會被spring掃描并注入到ioc容器中。即使沒有使用@MapperScan注解或MapperScannerConfigurer,只要@Repository注解標記的組件與Mybatis的mapper接口實現(xiàn)相同,它也可以生效。

但是,在mybatis中使用@Repository注解可能會有一些問題。當使用@Repository注解時,spring會將其視為spring的組件,即為該類創(chuàng)建一個代理對象并在ioc容器進行管理。但是,mybatis中的mapper接口實現(xiàn)并不是spring的組件,他們是由mybatis創(chuàng)建的代理對象。使用@Repository注解可能會導致mybatis創(chuàng)建的代理對象被spring重新創(chuàng)建代理,進而出現(xiàn)問題。

因此,建議在mybatis中使用@MapperScan注解或者MapperScannerConfigurer來掃描mapper接口實現(xiàn),并將他們注入到ioc容器中,而不是使用@Repository注解。

5、總結:

1、@Repository是spring的注解,@Mapper是mybatis的注解。

2、@Repository與@Mapper都可以使用,二者可以同時出現(xiàn),也可以單一使用。

3、單獨使用@Repository,需要配合使用MapperScannerConfigurer或者@MapperScan注解。

4、單獨使用@Mapper時,可能會在編輯器出現(xiàn)警告,不影響程序運行??梢耘浜鲜褂聾Repository消除警告。(也可以在編輯器中設置忽略這種警告)

到此這篇關于Spring中@Repository注解的作用和用法以及和@Mapper的區(qū)別的文章就介紹到這了,更多相關Spring @Repository注解用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot讀取外部配置文件的方法

    SpringBoot讀取外部配置文件的方法

    這篇文章主要介紹了SpringBoot讀取外部配置文件的方法,以端口配置為例,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • java后端訪問https證書的問題及解決

    java后端訪問https證書的問題及解決

    這篇文章主要介紹了java后端訪問https證書的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • spring-boot 禁用swagger的方法

    spring-boot 禁用swagger的方法

    本篇文章主要介紹了spring-boot 禁用swagger的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Java 實現(xiàn)Redis存儲復雜json格式數(shù)據(jù)并返回給前端

    Java 實現(xiàn)Redis存儲復雜json格式數(shù)據(jù)并返回給前端

    這篇文章主要介紹了Java 實現(xiàn)Redis存儲復雜json格式數(shù)據(jù)并返回給前端操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • swagger的請求參數(shù)不顯示,@Apimodel的坑點及解決

    swagger的請求參數(shù)不顯示,@Apimodel的坑點及解決

    這篇文章主要介紹了swagger的請求參數(shù)不顯示,@Apimodel的坑點及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MyBatis-Plus之邏輯刪除的實現(xiàn)

    MyBatis-Plus之邏輯刪除的實現(xiàn)

    這篇文章主要介紹了MyBatis-Plus之邏輯刪除的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 關于JDBC的簡單封裝(實例講解)

    關于JDBC的簡單封裝(實例講解)

    下面小編就為大家?guī)硪黄P于JDBC的簡單封裝(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • SpringMVC獲取請求參數(shù)筆記整理

    SpringMVC獲取請求參數(shù)筆記整理

    本文記錄和分享在學習Spring MVC過程中的筆記,通過案例示例代碼分析給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Spring防止重復點擊的兩種實現(xiàn)方法

    Spring防止重復點擊的兩種實現(xiàn)方法

    頁面重復提交導致的問題就是數(shù)據(jù)被重復保存,我們經(jīng)常會誤觸點擊兩次,所以本文小編給大家介紹了Spring防止重復點擊的兩種實現(xiàn)方法,需要的朋友可以參考下
    2025-01-01
  • java eclipse 整個項目或包查找只定字符串并替換操作

    java eclipse 整個項目或包查找只定字符串并替換操作

    這篇文章主要介紹了java eclipse 整個項目或包查找只定字符串并替換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論

丰台区| 榆树市| 深水埗区| 山阳县| 柳州市| 黄石市| 玉山县| 枣庄市| 洛隆县| 新闻| 伊吾县| 余江县| 庆城县| 高台县| 和平区| 北川| 长垣县| 普兰县| 尼木县| 若羌县| 福建省| 莱西市| 大宁县| 民勤县| 林州市| 小金县| 洮南市| 昭通市| 扎囊县| 同德县| 伊吾县| 丰县| 巴楚县| 沽源县| 天长市| 浏阳市| 营口市| 娄底市| 祁阳县| 万全县| 合水县|