原创 String類源碼詳解

String的源碼大家應該都能看懂,這裏就不一一分析咯,重點講一下equals()和hashcode()方法,然後看一下String類常用方法的實現,就當一起溫習一下咯。 public final class String

原创 從Spring及Mybatis框架源碼中學習設計模式(結構型)

設計模式是解決問題的方案,從大神的代碼中學習對設計模式的使用,可以有效提升個人編碼及設計代碼的能力。本系列博文用於總結閱讀過的框架源碼(Spring系列、Mybatis)及JDK源碼中 所使用過的設計模式,並結合個人工作經驗,重新

原创 Mybatis核心處理層源碼閱讀分析(Executor系列組件)

Executor是MyBatis的核心接口之一,其中定義了數據庫操作的基本方法。在實際應用中經常涉及的SqISession接口的功能,都是基於Executor 接口實現的。 public interface Executor {

原创 Mybatis核心處理層源碼閱讀分析(SqlSession系列組件)

SqlSession是MyBatis核心接口之一,也是MyBatis接口層的主要組成部分,對外提供MyBatis常用的API。mybatis提供了兩個SqlSession接口的實現,分別爲DefaultSqlSession、Sql

原创 Mybatis核心處理層源碼閱讀分析(StatementHandler系列組件)

StatementHandler接口是MyBatis的核心接口之一,它完成了MyBatis中最核心的工作,也是Executor 接口實現的基礎。 StatementHandler接口中的功能很多,例如創建Statement對象,爲

原创 從Spring及Mybatis框架源碼中學習設計模式(創建型)

設計模式是解決問題的方案,從大神的代碼中學習對設計模式的使用,可以有效提升個人編碼及設計代碼的能力。本系列博文用於總結閱讀過的框架源碼(Spring系列、Mybatis)及JDK源碼中 所使用過的設計模式,並結合個人工作經驗,重新

原创 servlet-api源碼賞析

Servlet 基礎 Servlet 簡介 Servlet(Server Applet)是J2EE的內容之一,由 Java 編寫的服務器端小程序。它是web請求的入口,主要功能在於交互式地(Request 和 Response)瀏

原创 基於Netty的服務端開發

Netty 服務端創建源碼分析 當我們直接使用 JDK 的 NIO類庫 開發基於 NIO 的異步服務端時,需要用到 多路複用器Selector、ServerSocketChannel、SocketChannel、ByteBuffe

原创 Dubbo註冊中心模塊 源碼賞析

註冊中心在Dubbo中的作用 服務治理框架可以大致分爲 服務通信 和 服務管理 兩部分,服務管理可以分爲服務註冊、服務訂閱以及服務發現,服務提供者Provider 會往註冊中心註冊服務,而消費者Consumer 會從註冊中心中訂閱

原创 ConcurrentHashMap 源碼賞析

HashMap 源碼中主要了解其核心源碼及實現邏輯。ConcurrentHashMap 就不再重複那些數據結構相關的內容咯,這裏重點看一下它的併發安全實現。源碼如下。 public class ConcurrentHashMap<

原创 詳解 分佈式事務

什麼是分佈式事務 跨多個數據庫執行的事務叫 分佈式事務,分佈式事務 是用來保證分佈式環境下 事務一致性的技術方案。如:分庫分表、服務拆分時,各數據庫被部署在不同的機器上,需要分佈式事務來保證 這種情況的事務一致性。 X/Open

原创 SpringMVC組件 源碼閱讀(IoC容器在Web環境中的啓動)

1 Web環境中的SpringMVC 在Web環境中,SpringMVC是建立在IoC容器基礎上的。瞭解SpringMVC,首先要了解Spring的IoC容器是如何在Web環境中被載人並起作用的。 Spring的IoC是一個獨立模

原创 Mybatis基礎支持層源碼閱讀分析(緩存模塊)

MyBatis 中的緩存分爲一級緩存、二級緩存,但在本質上是相同的,它們使用的都是 Cache接口 的實現。MyBatis緩存模塊 的設計,使用了裝飾器模式,這裏不對此進行過多解析,以後會專門開一篇博文分析常用框架中使用到的設計模

原创 從Spring及Mybatis框架源碼中學習設計模式(行爲型)

設計模式是解決問題的方案,從大神的代碼中學習對設計模式的使用,可以有效提升個人編碼及設計代碼的能力。本系列博文用於總結閱讀過的框架源碼(Spring系列、Mybatis)及JDK源碼中 所使用過的設計模式,並結合個人工作經驗,重新

原创 四種IO編程及對比

傳統的BIO編程 網絡編程的基本模型是 Client/Server 模型,也就是兩個進程之間進行相互通信,其中服務端提供位置信息(綁定的IP地址和監聽端口),客戶端通過連接操作向服務端監聽的地址發起連接請求,通過三次握手建立連接,