亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

1、@Repository的作用

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

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

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

3、@Repository和@Mapper的異同

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

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

想要不出現(xiàn)這個警告,可以在idea設(shè)置中對這種警告進行忽略,也可以在使用@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注解可能會導(dǎo)致mybatis創(chuàng)建的代理對象被spring重新創(chuàng)建代理,進而出現(xiàn)問題。

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

5、總結(jié):

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

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

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

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

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

相關(guān)文章

  • 新手初學(xué)Java流程控制

    新手初學(xué)Java流程控制

    這篇文章主要介紹了JAVA流程控制語句的的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習,感興趣的朋友可以了解下,希望可以幫到你
    2021-07-07
  • idea中service或者mapper引入報紅的問題及解決

    idea中service或者mapper引入報紅的問題及解決

    在使用IntelliJ IDEA開發(fā)SpringBoot項目時,有時會遇到Service或Mapper接口引入時報紅但不影響項目運行的情況,這主要是因為IDEA的檢查級別設(shè)置問題,解決方法是將有問題的Error級別改為編譯通過的安全級別,即可消除報紅
    2024-09-09
  • Java實現(xiàn)FTP文件與文件夾的上傳和下載

    Java實現(xiàn)FTP文件與文件夾的上傳和下載

    本文主要分享了Java實現(xiàn)文件上傳和下載的具體實例,分為單個文件的上傳與下載和整個文件夾的上傳與下載。具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • 對比Java中的Comparable排序接口和Comparator比較器接口

    對比Java中的Comparable排序接口和Comparator比較器接口

    Comparable和Comparator接口都可用作普通意義上對象間的比大小,但兩個接口在實例化方面的用法不盡相同,接下來我們就來詳細對比Java中的Comparable排序接口和Comparator比較器接口
    2016-05-05
  • VSCode?配置?Spring?Boot?項目開發(fā)環(huán)境的全過程

    VSCode?配置?Spring?Boot?項目開發(fā)環(huán)境的全過程

    兩三年前曾經(jīng)試過配置Java環(huán)境, 存在不少問題作罷. 最近搜了下相關(guān)的文章, 感覺VSCode對Java項目的支持比三年前完善了不少. 今天實際配置了一下環(huán)境, 把自己常用的功能過了一遍, 基本能跑通開發(fā)流程, 做個筆記,需要的朋友可以參考下
    2024-03-03
  • Java中數(shù)組的定義和使用教程(一)

    Java中數(shù)組的定義和使用教程(一)

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的定義和使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2021-01-01
  • Java向上轉(zhuǎn)型與向下轉(zhuǎn)型超詳細圖解

    Java向上轉(zhuǎn)型與向下轉(zhuǎn)型超詳細圖解

    我們在Java編程中經(jīng)常碰到類型轉(zhuǎn)換,對象類型轉(zhuǎn)換主要包括向上轉(zhuǎn)型和向下轉(zhuǎn)型,這篇文章主要介紹了Java向上轉(zhuǎn)型與向下轉(zhuǎn)型的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項目

    IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項目

    IDEA 功能強大,可以用來高效的開發(fā)應(yīng)該程序。它還支持第三方插件、用戶可以根據(jù)需要添加自己喜歡的插件。下面介紹如何使用 IDEA 創(chuàng)建 Spring Cloud 項目
    2021-06-06
  • SpringBoot整合Mybatis-Plus實現(xiàn)關(guān)聯(lián)查詢

    SpringBoot整合Mybatis-Plus實現(xiàn)關(guān)聯(lián)查詢

    Mybatis-Plus(簡稱MP)是一個Mybatis的增強工具,只是在Mybatis的基礎(chǔ)上做了增強卻不做改變,MyBatis-Plus支持所有Mybatis原生的特性,本文給大家介紹了SpringBoot整合Mybatis-Plus實現(xiàn)關(guān)聯(lián)查詢,需要的朋友可以參考下
    2024-08-08
  • Spring Reactor基本介紹和案例解析

    Spring Reactor基本介紹和案例解析

    Spring Reactor 是一個響應(yīng)式編程框架,非常適合類似 MXN 這樣的流程編排系統(tǒng),也是 Java 中異步編程的一種補充,這篇文章主要介紹了Spring Reactor基本介紹和案例解析,需要的朋友可以參考下
    2024-07-07

最新評論