原创 entitybuilder--一個簡單的業務通用框架

關於業務通用框架的思考 業務系統是千差萬別的,例如,保存、更新和刪除訂單,或者保存訂單和保存客戶,走的根本不是一個流程。但是,它們還是有共同點,它們的流程大致可以分成下面的幾個部分: 拿到增刪改等操作所需的基礎數據; 初始化基礎數據;

原创 Java源碼詳解系列(十二)--Eureka的使用和源碼

eureka 是由 Netflix 團隊開發的針對中間層服務的負載均衡器,在微服務項目中被廣泛使用。相比 SLB、ALB 等負載均衡器,eureka 的服務註冊是無狀態的,擴展起來非常方便。 在這個系列中,我將深入研究 eureka,包括它

原创 Eureka詳解系列(五)--Eureka Server部分的源碼和配置

簡介 按照原定的計劃,我將分三個部分來分析 Eureka 的源碼: Eureka 的配置體系(已經寫完,見Eureka詳解系列(三)--探索Eureka強大的配置體系); Eureka Client 的交互行爲(已經寫完,見Eureka詳

原创 Eureka詳解系列(四)--Eureka Client部分的源碼和配置

簡介 按照原定的計劃,我將分三個部分來分析 Eureka 的源碼: Eureka 的配置體系(已經寫完,見Eureka詳解系列(三)--探索Eureka強大的配置體系); Eureka Client 的交互行爲; Eureka Serve

原创 Eureka詳解系列(三)--探索Eureka強大的配置體系

簡介 通過前面的兩篇博客,我們知道了:什麼是 Eureka?爲什麼使用 Eureka?如何使用 Eureka?今天,我們開始來研究 Eureka 的源碼,先從配置部分的源碼開始看,其他部分後面再補充。 補充一點,我更多地會從設計層面分析源碼

原创 Eureka詳解系列(二)--如何使用Eureka(原生API,無Spring)

簡介 通過上一篇博客 Eureka詳解系列(一)--先談談負載均衡器 ,我們知道了 Eureka 是什麼以及爲什麼要使用它,今天,我們開始研究如何使用 Eureka。 在此之前,先說明一點。網上幾乎所有關於 Eureka 的文章都是基於 S

原创 Eureka詳解系列(一)--先談談負載均衡器

這個系列開始研究 Eureka,在此之前,先來談談負載均衡器。 本質上,Eureka 就是一個負載均衡器,可能有的人會說,它是一個服務註冊中心,用來註冊服務的,這種說法不能說錯,只是有點片面。 在這篇博客裏,我將盡可能循序漸進、圖文並茂地回

原创 cglib、orika、spring等bean copy工具性能測試和原理分析

簡介 在實際項目中,考慮到不同的數據使用者,我們經常要處理 VO、DTO、Entity、DO 等對象的轉換,如果手動編寫 setter/getter 方法一個個賦值,將非常繁瑣且難維護。通常情況下,這類轉換都是同名屬性的轉換(類型可以不同)

原创 jackson、fastjson、kryo、protostuff等序列化工具性能對比

簡介 實際項目中,我們經常需要使用序列化工具來存儲和傳輸對象。目前用得比較多的序列化工具有:jackson、fastjson、kryo、protostuff、fst 等,本文將簡單對比這幾款工具序列化和反序列化的性能。 項目環境 本文使用

原创 Java源碼詳解系列(十一)--Spring的使用和源碼(共計4篇博客)

Spring 是一個一站式的 Java 框架,致力於使我們的項目更加“高內聚、低耦合”。通過 Spring,我們可以避免編寫大量額外代碼,更專注於我們的核心邏輯。目前,Spring 已經成爲最受歡迎的 Java 框架。 Spring 的全家

原创 Spring源碼系列(四)--spring-aop是如何設計的

簡介 spring-aop 用於生成動態代理類(底層是使用 JDK 動態代理或 cglib 來生成代理類),搭配 spring-bean 一起使用,可以使 AOP 更加解耦、方便。在實際項目中,spring-aop 被廣泛用來實現日誌、權限

原创 Spring源碼系列(三)--spring-aop的基礎組件、架構和使用

簡介 前面已經講完 spring-bean( 詳見Spring ),這篇博客開始攻克 Spring 的另一個重要模塊--spring-aop。 spring-aop 可以實現動態代理(底層是使用 JDK 動態代理或 cglib 來生成代理類

原创 JMH--一款由OpenJDK開發的基準測試工具

什麼是JMH JMH 是 OpenJDK 團隊開發的一款基準測試工具,一般用於代碼的性能調優,精度甚至可以達到納秒級別,適用於 java 以及其他基於 JVM 的語言。和 Apache JMeter 不同,JMH 測試的對象可以是任一方法,

原创 關於maven的一份小筆記

簡介 項目裏一直用的 maven,幾乎天天和這個“熟知”的工具打交道,但是,最近我發覺自己對 maven 瞭解的還不夠,例如,什麼是 goal?什麼是 phase?等等。趁着最近有時間,把官網文檔大致看了一遍,並且做做筆記,也就形成了這篇博

原创 Java源碼詳解系列(十)--全面分析mybatis的使用、源碼和代碼生成器(總計5篇博客)

簡介 Mybatis 是一個持久層框架,它對 JDBC 進行了高級封裝,使我們的代碼中不會出現任何的 JDBC 代碼,另外,它還通過 xml 或註解的方式將 sql 從 DAO/Repository 層中解耦出來,除了這些基本功能外,它還提