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

SpringBoot注解@MapperScan的實現(xiàn)

 更新時間:2025年05月07日 08:58:18   作者:擺爛且佛系  
@MapperScan是MyBatis和MyBatis-Plus提供的SpringBoot注解,用于自動掃描并注冊?Mapper?接口,使其能夠被?Spring?容器管理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

@MapperScan 是 MyBatis 和 MyBatis-Plus 提供的一個 Spring Boot 注解,用于自動掃描并注冊 Mapper 接口,使其能夠被 Spring 容器管理,并與對應(yīng)的 XML 或注解 SQL 綁定。它的核心作用是簡化 MyBatis Mapper 接口的配置,避免手動逐個聲明。

1. 基本用法

(1)在啟動類上添加 @MapperScan

@SpringBootApplication
@MapperScan("com.example.mapper") // 指定 Mapper 接口所在的包
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

作用:Spring 會掃描 com.example.mapper 包及其子包下的所有 Mapper 接口,并自動注冊為 Bean。

(2)掃描多個包

@MapperScan({"com.example.mapper", "com.another.dao"})
  • 可以傳入多個包路徑,適用于 Mapper 分散在不同模塊的情況。

2. @MapperScan 的底層原理

  • Spring 啟動時,@MapperScan 會觸發(fā) MapperScannerRegistrar,掃描指定包下的接口。

  • 為每個 Mapper 接口生成代理對象(通過 JDK 動態(tài)代理或 CGLIB),并注冊到 Spring 容器。

  • 代理對象會綁定對應(yīng)的 SQL(XML 或注解方式),執(zhí)行數(shù)據(jù)庫操作。

3. 一定需要@MapperScan嗎?

1. 什么情況下可以不用 @MapperScan?

(1) 使用 MyBatis 的 <mapper> 接口手動注冊

如果你在 MyBatis 的全局配置文件(如 mybatis-config.xml)中手動注冊了 Mapper 接口,例如:

<mappers>
    <mapper class="com.example.dao.UserDao"/>
</mappers>

則不需要 @MapperScan。但這種方式在 Spring Boot 中很少用。 

(2) 使用 @Mapper 注解標(biāo)記每個 DAO 接口

如果每個 Mapper 接口都添加了 @Mapper 注解(MyBatis 提供的注解),Spring Boot 會自動掃描它們:

@Mapper // 關(guān)鍵注解
public interface UserDao {
    User selectById(Long id);
}

此時不需要 @MapperScan,但需確保:

  • 接口所在的包路徑被 Spring Boot 主類默認(rèn)掃描(即與啟動類同級或子包)。
  • 項目中不存在其他沖突配置。

2. 什么情況下必須用 @MapperScan?

(1) 未使用 @Mapper 注解

如果 DAO 接口沒有逐個添加 @Mapper 注解,必須通過 @MapperScan 批量指定掃描路徑:

@SpringBootApplication
@MapperScan("com.example.dao") // 指定 DAO 接口所在的包
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

(2) 需要靈活控制掃描范圍

當(dāng) DAO 接口分散在多個包中時:

@MapperScan({"com.example.dao", "com.another.package.dao"})

當(dāng)需要排除某些接口時(結(jié)合自定義過濾器)。

到此這篇關(guān)于SpringBoot注解@MapperScan的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot @MapperScan內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring配置動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離的方法

    Spring配置動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離的方法

    這篇文章主要介紹了利用Spring配置動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離的方法,文中通過示例代碼介紹的很詳細(xì),相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,藕需要的朋友可以一起學(xué)習(xí)學(xué)習(xí)。
    2017-01-01
  • Spring MVC Mybatis多數(shù)據(jù)源的使用實例解析

    Spring MVC Mybatis多數(shù)據(jù)源的使用實例解析

    項目需要從其他網(wǎng)站獲取數(shù)據(jù),因為是臨時加的需求,這篇文章主要介紹了Spring MVC Mybatis多數(shù)據(jù)源的使用實例解析,需要的朋友可以參考下
    2016-12-12
  • springboot+mybatis攔截器方法實現(xiàn)水平分表操作

    springboot+mybatis攔截器方法實現(xiàn)水平分表操作

    這篇文章主要介紹了springboot+mybatis攔截器方法實現(xiàn)水平分表操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • Java程序員必備的11大IntelliJ插件(附地址)

    Java程序員必備的11大IntelliJ插件(附地址)

    這篇文章主要介紹了Java程序員必備的11大IntelliJ插件(附地址),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 淺談Maven resrouce下filtering作用

    淺談Maven resrouce下filtering作用

    Filtering是Maven Resources Plugin的一個功能,本文主要介紹了淺談Maven resrouce下filtering作用,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Activiti工作流學(xué)習(xí)筆記之自動生成28張數(shù)據(jù)庫表的底層原理解析

    Activiti工作流學(xué)習(xí)筆記之自動生成28張數(shù)據(jù)庫表的底層原理解析

    這篇文章主要介紹了Activiti工作流學(xué)習(xí)筆記之自動生成28張數(shù)據(jù)庫表的底層原理解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java動態(tài)線程池插件dynamic-tp集成過程淺析

    Java動態(tài)線程池插件dynamic-tp集成過程淺析

    這篇文章主要介紹了Java動態(tài)線程池插件dynamic-tp集成過程,dynamic-tp是一個輕量級的動態(tài)線程池插件,它是一個基于配置中心的動態(tài)線程池,線程池的參數(shù)可以通過配置中心配置進(jìn)行動態(tài)的修改
    2023-03-03
  • 簡單說說JVM堆區(qū)的相關(guān)知識

    簡單說說JVM堆區(qū)的相關(guān)知識

    今天給大家?guī)淼氖顷P(guān)于Java虛擬機(jī)的相關(guān)知識,文章圍繞著JVM堆區(qū)展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java 5個人坐在一起(有關(guān)第五個人歲數(shù)的問題)

    Java 5個人坐在一起(有關(guān)第五個人歲數(shù)的問題)

    利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推,需要的朋友可以參考下
    2017-02-02
  • MyBatis中的N+1問題的解決方法

    MyBatis中的N+1問題的解決方法

    本文主要介紹了MyBatis中的N+1問題的四種解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12

最新評論

定日县| 穆棱市| 麦盖提县| 北碚区| 枣庄市| 沾化县| 宁南县| 临洮县| 乌兰县| 杭锦后旗| 定陶县| 高唐县| 黔西县| 九龙坡区| 溆浦县| 鹤岗市| 彰武县| 西乡县| 柳州市| 颍上县| 长岭县| 扎囊县| 巩义市| 额敏县| 巫溪县| 上虞市| 共和县| 常德市| 灵寿县| 贺州市| 昌黎县| 惠来县| 三江| 高青县| 哈巴河县| 邵武市| 海晏县| 佳木斯市| 龙州县| 海淀区| 张家界市|