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

Mybatis分頁(yè)插件PageHelper的分頁(yè)原理剖析

 更新時(shí)間:2023年08月17日 11:03:28   作者:信仰_273993243  
這篇文章主要介紹了Mybatis分頁(yè)插件PageHelper的分頁(yè)原理剖析,PageHelper作為一個(gè)啟動(dòng)器,那么就和其他啟動(dòng)器加載一樣,先讀取spring.factories文件里面配置的類(lèi),轉(zhuǎn)成Bean加載本系統(tǒng)中,然后執(zhí)行他的前置后置處理方法,完成初始化,需要的朋友可以參考下

前言

先說(shuō)下大致的流程:PageHelper作為一個(gè)啟動(dòng)器,那么就和其他啟動(dòng)器加載一樣,先讀取spring.factories文件里面配置的類(lèi),轉(zhuǎn)成Bean加載本系統(tǒng)中

然后執(zhí)行他的前置后置處理方法,完成初始化,最后當(dāng)我們執(zhí)行目標(biāo)方法時(shí),通過(guò)攔截器對(duì)目標(biāo)方法進(jìn)行攔截,以達(dá)到拓展的目的。

一、加載啟動(dòng)器里面的Bean

1、PageHelper的spring.factories

2、里面就包含一個(gè)PageHelperAutoConfiguration類(lèi)這是一個(gè)配置類(lèi),看下有哪些內(nèi)容

在方法org.springframework.core.io.support.SpringFactoriesLoader#loadSpringFactories里面會(huì)去加載其他Jar下面的spring.factories文件,然后把文件下配置的類(lèi)掃描添加到Map里面去。

3、那么spring是在哪里把jar包下面的spring.factories掃描進(jìn)去的

其他starter的spring.factories加載也是如此

4、加載完之后需要把這個(gè)Bean注冊(cè)到Spring容器中

因?yàn)槭且粋€(gè)Configuration,所以基本注冊(cè)成Bean都是在ConfigurationClassPostProcessor里面完成

最終會(huì): org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader#registerBeanDefinitionForImportedConfigurationClass 方法里面把PageHelperAutoConfiguration注冊(cè)到Spring容器中

下面看下PageHelperAutoConfiguration有什么作用

二、實(shí)例化PageHelperAutoConfiguration

該方法在實(shí)例化Bean的時(shí)候,調(diào)用BeanPostProcessorsBefore回調(diào)方法會(huì)觸發(fā)下面的方法

往sql攔截器鏈中添加攔截器

三、使用

先看下分頁(yè)查詢(xún)的代碼

其中有個(gè)setLocalPage,就是利用ThreadLocal,設(shè)置變量值

public abstract class PageMethod {
    protected static final ThreadLocal<Page> LOCAL_PAGE = new ThreadLocal<Page>();
    protected static boolean DEFAULT_COUNT = true;
    /**
     * 設(shè)置 Page 參數(shù)
     *
     * @param page
     */
    protected static void setLocalPage(Page page) {
        LOCAL_PAGE.set(page);
    }
}

最終在執(zhí)行sql查詢(xún)的時(shí)候,會(huì)觸發(fā)到攔截器

看下這個(gè)攔截器做了什么?

主要是判斷是否需要分頁(yè),是否需要count操作,等等,最后返回List

到此這篇關(guān)于Mybatis分頁(yè)插件PageHelper的分頁(yè)原理剖析的文章就介紹到這了,更多相關(guān)PageHelper的分頁(yè)原理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Set與List的關(guān)系與區(qū)別介紹

    Java中Set與List的關(guān)系與區(qū)別介紹

    這篇文章主要介紹了Java中Set與List的關(guān)系與區(qū)別介紹,本文總結(jié)它們兩個(gè)接口都是繼承自Collection、它們之間的存儲(chǔ)方式不一樣,需要的朋友可以參考下
    2015-03-03
  • spring boot如何使用POI讀取Excel文件

    spring boot如何使用POI讀取Excel文件

    本文主要介紹使用POI進(jìn)行Excel文件的相關(guān)操作,涉及讀取文件,獲取sheet表格,對(duì)單元格內(nèi)容進(jìn)行讀寫(xiě)操作,以及合并單元格的操作
    2021-08-08
  • Java操作MinIO實(shí)現(xiàn)文件的上傳和刪除

    Java操作MinIO實(shí)現(xiàn)文件的上傳和刪除

    本文主要介紹如何將本地Java項(xiàng)目resources目錄下的一個(gè)PNG圖片上傳到MinIO,然后將上傳的圖片刪除,文中有詳細(xì)的流程步驟和示例代碼,需要的朋友可以參考下
    2023-06-06
  • Mybatis中傳遞多個(gè)參數(shù)的4種方法總結(jié)

    Mybatis中傳遞多個(gè)參數(shù)的4種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于Mybatis中傳遞多個(gè)參數(shù)的4種方法,并且介紹了關(guān)于使用Mapper接口時(shí)參數(shù)傳遞方式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Java 文件上傳與路徑處理之Paths.get()、resolve()、transferTo()的用法詳解

    Java 文件上傳與路徑處理之Paths.get()、resolve()、transferTo()的用法詳解

    本文詳細(xì)解析了如何使用Java的Paths.get()、resolve()和Spring的transferTo()方法處理文件上傳功能,并給出了完整的代碼示例,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Spring如何重寫(xiě)內(nèi)置Bean(Controller、Service等)

    Spring如何重寫(xiě)內(nèi)置Bean(Controller、Service等)

    本文介紹了在Spring Boot工程中處理外部JAR包中Controller方法重寫(xiě)的需求,通過(guò)PostProcessor方式和自定義注解@ExcludeBean兩種方法,解決了在不修改源代碼的情況下重寫(xiě)接口的問(wèn)題
    2025-01-01
  • 使用spring+maven不同環(huán)境讀取配置方式

    使用spring+maven不同環(huán)境讀取配置方式

    這篇文章主要介紹了使用spring+maven不同環(huán)境讀取配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 解決打開(kāi)的idea項(xiàng)目maven不生效問(wèn)題

    解決打開(kāi)的idea項(xiàng)目maven不生效問(wèn)題

    這篇文章主要給大家介紹了關(guān)于如何解決打開(kāi)的idea項(xiàng)目maven不生效問(wèn)題,最近在配置maven時(shí),發(fā)現(xiàn)無(wú)論配置幾遍,IDEA中的maven配置總會(huì)還原成默認(rèn)的,所以這里給大家分享下解決辦法,需要的朋友可以參考下
    2023-07-07
  • 解析Java格式字符串的使用

    解析Java格式字符串的使用

    本文通過(guò)實(shí)例給大家介紹了java格式字符串的使用,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-02-02
  • k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目

    k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目

    本文主要介紹了k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目,主要包括配置文件、鏡像構(gòu)建和容器編排等方面,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論