国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

@Repository注解的作用和用法,以及和@Mapper的區(qū)別

這篇具有很好參考價值的文章主要介紹了@Repository注解的作用和用法,以及和@Mapper的區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、@Repository的作用

@Repository是屬于Spring的注解。它用來標注訪問層的類(Dao層),它表示一個倉庫,主要用于封裝對于數(shù)據(jù)庫的訪問。其實現(xiàn)方式與@Component注解相同,只是為了明確類的作用而設(shè)立。
即@Repository是@Component注解的一個派生品,與@Service和@Controller都可以理解為@Component注解的擴展。他們的作用都是在類上實例化bean,并把當(dāng)前類對象的實現(xiàn)類交給spring容器進行管理。

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

另外,作為spring的注解,他還能把所標注的類中拋出的數(shù)據(jù)訪問異常封裝為spring的數(shù)據(jù)訪問異常類型。
@Repository注解的作用和用法,以及和@Mapper的區(qū)別

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注解可能會有一些問題。當(dāng)使用@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è)置忽略這種警告)文章來源地址http://www.zghlxwxcb.cn/news/detail-451807.html

到了這里,關(guān)于@Repository注解的作用和用法,以及和@Mapper的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和區(qū)別分析

    Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和區(qū)別分析

    @[TOC]Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和區(qū)別分析 前言 做開發(fā)項目時,總會遇到這些包,理清他們的層次,非常有助于我們對于項目的理解和建立。 現(xiàn)階段CSDN上貌似沒有很系統(tǒng),很詳細的關(guān)于層級類的解釋。因此總結(jié)了一下自己的經(jīng)

    2024年02月07日
    瀏覽(25)
  • @Service和@Component注解的區(qū)別和用法

    @Service和@Component注解在Spring框架中都用于標注類,以便Spring容器能夠自動識別并創(chuàng)建其實例。然而,這兩個注解在用法和區(qū)別上卻有著不同的目的和效果。本文將詳細介紹這兩個注解的用法和區(qū)別,并通過示例代碼進行演示。 一、@Service注解 @Service注解是Spring框架中用于標注

    2024年02月06日
    瀏覽(12)
  • Linux技巧(六):命令尾部&的作用 &&、|、||、;、()、&>、 2>&1 的用法和區(qū)別,很實用

    Linux技巧(六):命令尾部&的作用 &&、|、||、;、()、&>、 2>&1 的用法和區(qū)別,很實用

    在使用Linux命令時,、||、;、()這些偶爾會接觸到,命令結(jié)尾單獨的“ ”符號,又有什么作用,這些命令之間有何區(qū)分,一起來學(xué)習(xí)一下吧。 ? 【PS】: 如果你對Zookeeper學(xué)習(xí):ZK下載安裝和真/偽集群搭建感興趣,點擊進入。 作用: 表示任務(wù)在后臺執(zhí)行 ,即使ssh窗口關(guān)閉

    2024年02月01日
    瀏覽(20)
  • @Autowired和@Resource注解之間的關(guān)系區(qū)別,Bean的作用域和生命周期,Spring的執(zhí)行流程

    @Autowired和@Resource注解之間的關(guān)系區(qū)別,Bean的作用域和生命周期,Spring的執(zhí)行流程

    目錄 一. @Autowired 和 @Resource 注解 二. Bean的作用域? 1.?singleton(單例模式) 2.?prototype(原型模式)(多例模式) 3. 請求作用域:request 4. 會話作用域:session 三. Spring 的執(zhí)行流程 四. Bean 的生命周期? ?1. 實例化 ?2. 設(shè)置屬性? 3. Bean 初始化?? ? ?3.1 執(zhí)行各種各種 Aware 通知;? ? ?

    2024年02月04日
    瀏覽(24)
  • Linux | nslookup詳細介紹一下這指令的作用以及用法

    linux 當(dāng)中,nslookup是一個網(wǎng)絡(luò)工具,通常用于查詢域名系統(tǒng)(DNS)服務(wù)器以獲取主機名或IP地址相關(guān)的信息。它可以用于查找主機名的IP地址,反向查找IP地址的主機名,以及查詢DNS記錄的其他信息。以下是nslookup命令的用法和示例: 查詢主機名的IP地址: nslookup example.com 這個

    2024年04月26日
    瀏覽(26)
  • 【34JavaScript let 和 const】JavaScript中的“l(fā)et“和“const“關(guān)鍵字詳解:作用、用法及區(qū)別

    // 使用 let 聲明變量 let x = 10; // 在同一作用域內(nèi)重新賦值 x = 20; // 在不同的作用域內(nèi)使用 let 聲明變量 function example() { let y = 30; console.log(x); // 輸出:20 console.log(y); // 輸出:30 } console.log(x); // 輸出:20 console.log(y); // 報錯:y is not defined // 使用 const 聲明常量 const PI = 3.14159; // 嘗

    2024年02月08日
    瀏覽(23)
  • send()函數(shù)的用法;MSG_NOSIGNAL什么含義?有什么作用?以及flags中參數(shù)類型有哪些各自又起到什么作用?

    send()函數(shù)的用法;MSG_NOSIGNAL什么含義?有什么作用?以及flags中參數(shù)類型有哪些各自又起到什么作用?

    目錄 ?1.send()函數(shù)的基本用法(入門級): 2.MSG_NOSIGNAL什么含義?有什么作用? 3.send()函數(shù)中第4個flags中參數(shù)類型有哪些各自又起到什么作用? send() 函數(shù)是一個用于在 TCP/IP 網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)的系統(tǒng)調(diào)用函數(shù)。它通常在客戶端和服務(wù)器端程序中被使用。 send() 函數(shù)的語法如下: 其

    2024年02月07日
    瀏覽(44)
  • Unity中向量的點乘、叉乘區(qū)別和作用以及經(jīng)典案例

    Unity中向量的點乘、叉乘區(qū)別和作用以及經(jīng)典案例

    unity開發(fā)中我們要計算角度,判斷位置,常用點乘、叉乘、歸一化等等,我們看看他們的使用案例 點乘(Dot Product) 在Unity中的Vector3類提供了 Dot() 方法來計算兩個向量的點乘。點乘的結(jié)果是一個標量值,可以用于判斷兩個向量的方向關(guān)系或者計算投影長度等。 叉乘(Cross P

    2024年04月28日
    瀏覽(63)
  • Rollup & 的作用、使用教程、支持 Vue、以及與 Webpack / Babel 的區(qū)別

    Rollup & 的作用、使用教程、支持 Vue、以及與 Webpack / Babel 的區(qū)別

    沒接觸過前端模塊化概念的同學(xué)可先參考:JS Node 模塊化解釋:AMD、UMD、CommonJS、 ESM Rollup 工具可以將代碼轉(zhuǎn)成不同模塊,實現(xiàn)一套代碼多端(瀏覽器/Node)引入。比如通過一句命令將代碼打包為: 瀏覽器(代碼通過 Script 標簽引入) AMD(兼容 requirejs.js 框架) CommonJS(Node.j

    2024年02月16日
    瀏覽(18)
  • 路由器的內(nèi)存種類和作用以及NVRAM同RAM的區(qū)別介紹

    路由器內(nèi)存的種類 路由器的內(nèi)存有三類:RAM(Random Access Memory),NVRAM(Non-Volatile Random Access Memory)及EEPROM(Electronic Erasable Programmable Random Access Memory,又稱為Flash)。 路由器內(nèi)存的作用 Flash:存儲路由器的操作系統(tǒng)(IOS:Internet Operating system)。 NVRAM:存儲用戶對路由器的配置表。 RAM:路

    2024年02月06日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包