摘要:本篇博客就是 myabtis 系列的最后一篇了,還剩 ResultSetHandler 沒有分析;作為整個 mybatis 最復雜最繁瑣的部分,我不打算按步驟一次詳解,因為里面的主要內容就是圍繞 resultMap 按層次結構依次解析的,其中運用最多的就是反射,所以我這里將圍繞延遲加載重點分析,另外 閱讀全文
posted @ 2019-09-05 15:43 三棗 閱讀(558) 評論(0) 推薦(0) 編輯
摘要:一、KeyGenerator 概述 在平時開發的時候經常會有這樣的需求,插入數據返回主鍵,或者插入數據之前需要獲取主鍵,這樣的需求在 mybatis 中也是支持的,其中主要的邏輯部分就在 KeyGenerator 中,下面是他的類圖: 其中: NoKeyGenerator:默認空實現,不需要對主鍵單 閱讀全文
posted @ 2019-09-02 15:48 三棗 閱讀(717) 評論(0) 推薦(0) 編輯
摘要:分析到這里的時候,mybatis 初始化、接口、事務、緩存等主要功能都已經講完了,現在就還剩下 StatementHandler 這個真正干活的家伙沒有分析了;所以接下來的博客內容主要和數據庫的關系比較密切,而 StatementHandler 的主要流程也基本是和 JDBC 的流程是一一對應的; 閱讀全文
posted @ 2019-08-30 15:44 三棗 閱讀(236) 評論(0) 推薦(0) 編輯
摘要:本篇博客將主要講解 mybatis 插件的主要流程,其中主要包括動態代理和責任鏈的使用; 一、mybatis 攔截器主體結構 在編寫 mybatis 插件的時候,首先要實現 Interceptor 接口,然后在 mybatis conf.xml 中添加插件, 這里需要注意的是,添加的插件是有順序的, 閱讀全文
posted @ 2019-08-28 14:27 三棗 閱讀(502) 評論(0) 推薦(0) 編輯
摘要:本篇博客主要講了 mybatis 一二級緩存的構成,以及一些容易出錯地方的示例分析; 一、mybatis 緩存體系 mybatis 的一二級緩存體系大致如下: 首先當一二級緩存同時開啟的時候,首先命中二級緩存; 一級緩存位于 BaseExecutor 中不能關閉,但是可以指定范圍 STATEMENT 閱讀全文
posted @ 2019-08-26 19:06 三棗 閱讀(358) 評論(0) 推薦(0) 編輯
摘要:本文將主要介紹 Executor 的整體結構和各子類的功能,并對比效率; 一、Executor 主體結構 1. 類結構 executor 的類結構如圖所示: 其各自的功能: BaseExecutor:基礎執行器,封裝了子類的公共方法,包括一級緩存、延遲加載、回滾、關閉等功能; SimpleExecu 閱讀全文
posted @ 2019-08-22 16:11 三棗 閱讀(366) 評論(0) 推薦(0) 編輯
摘要:mybatis 的初始化還是相對比較復雜,但是作者在初始化過程中使用了多種設計模式,包括建造者、動態代理、策略、外觀等,使得代碼的邏輯仍然非常清晰,這一點非常值得我們學習; 一、mapper 初始化主要流程 mybatis 初始化的過程中,主要是 XML 配置的解析,不同的部分又分別委托給了不同的解 閱讀全文
posted @ 2019-08-20 12:27 三棗 閱讀(465) 評論(0) 推薦(0) 編輯
摘要:本篇博客將主要對 mybatis 整體介紹,包括 mybatis 的項目結構,執行的主要流程,初始化流程,API 等各模塊進行簡單的串聯,讓你能夠對 mybatis 有一個整體的把握。另外在 mybatis 源碼的閱讀過程中,如果不想寫 demo 可以直接使用項目中的單元測試; 一、mybatis 閱讀全文
posted @ 2019-08-15 18:57 三棗 閱讀(702) 評論(0) 推薦(0) 編輯
摘要:Disruptor 的大名從很久以前就聽說了,但是一直沒有時間;看完以后才發現其內部的思想異常清晰,很容易就能前移到其他的項目,所以仔細了解一下還是很有必要的這。篇博客將主要從源碼角度分析,Disruptor 為什么那么快,在此之前可以先查看 "Disruptor 詳解 一" ,能夠對 Disrup 閱讀全文
posted @ 2019-07-14 18:08 三棗 閱讀(228) 評論(0) 推薦(1) 編輯
摘要:這篇博客將主要通過幾個示例,簡單講述 Disruptor 的使用方法; 一、disruptor 簡介 "Disruptor" 是英國外匯交易公司 LMAX 開發的一個 無鎖 高性能的線程間消息傳遞的框架。目前包括 Apache Storm、Camel、Log4j2 等知名項目都是用了 Disrupt 閱讀全文
posted @ 2019-07-10 16:45 三棗 閱讀(513) 評論(0) 推薦(0) 編輯
摘要:本文將主要講述 JDK1.8 版本 的 ConcurrentHashMap,其內部結構和很多的哈希優化算法,都是和 JDK1.8 版本的 HashMap是一樣的,所以在閱讀本文之前,一定要先了解 HashMap,可以參考 "HashMap 相關" ;另外 ConcurrentHashMap 中同樣有 閱讀全文
posted @ 2019-04-29 20:03 三棗 閱讀(300) 評論(0) 推薦(0) 編輯
摘要:文本將主要講述 一個特殊的子類 ,主要用于執行周期性任務;所以在看本文之前最好先了解一下 ,可以參考 "ThreadPoolExecutor 詳解" ;另外 中使用了延遲隊列,主要是基于完全二叉堆實現的,可以參考 "完全二叉堆" ; 一、ScheduledThreadPoolExecutor 結構概 閱讀全文
posted @ 2019-04-24 09:51 三棗 閱讀(1655) 評論(0) 推薦(2) 編輯
摘要:本文將主要講述在堆排序和優先級隊列中使用的一種數據結構,二叉堆; 一、結構概述 完全二叉堆,首先在邏輯上是樹形結構,完全二字則表明是完全的二叉樹,其結構如圖所示: 結構性: 正是因為是完全結構的二叉樹,所以可以將節點映射到數組中,其運算關系如下,i 表示數組下標: 父節點: ; 左孩子:`1 + ( 閱讀全文
posted @ 2019-04-17 16:39 三棗 閱讀(265) 評論(0) 推薦(0) 編輯
摘要:本文將主要介紹我們平時最常用的線程池 ,有可能你平時沒有直接使用這個類,而是使用 的工廠方法創建線程池,雖然這樣很簡單,但是很可能因為這個線程池發生 OOM ,具體情況文中會詳細介紹; 二、ThreadPoolExecutor 概覽 的繼承關系如圖所示: 其中: Executor :定義了 異步接口 閱讀全文
posted @ 2019-04-15 20:12 三棗 閱讀(504) 評論(1) 推薦(0) 編輯
摘要:本文將主要結合源碼對 JDK 中的阻塞隊列進行分析,并比較其各自的特點; 一、BlockingQueue 概述 說到阻塞隊列想到的第一個應用場景可能就是生產者消費者模式了,如圖所示; 根據上圖所示,明顯在入隊和出隊的時候,會發生競爭;所以一種很自然的想法就是使用鎖,而在 JDK 中也的確是通過鎖來實 閱讀全文
posted @ 2019-04-11 11:33 三棗 閱讀(325) 評論(0) 推薦(0) 編輯
丛林巫师APP下载
管家婆期期准之选 广西11选5玩法说明 炒股入门知识下载 快乐8澳洲act计划软件 捕鱼王开挂 万亿棋牌官方下载 麻将来了礼包大全 青海11选5开奖走势图 斯诺克比分直播手机网 网上兼职赚钱有哪些 闲来贵州麻将下载 大圣闹海捕鱼游戏 英皇国际棋牌游戏 天天斗地主赚钱抢红包 上海时时乐走势图单选表 中信建投股票吧