原创 Zookeeper源碼分析之Curator如何實現ZK分佈式鎖

摘要:今天要講的這個問題,我會從三個角度去分析。 第一個角度:爲什麼會出現分佈式鎖以及它的出現能解決哪種場景下的問題? 第二個角度:爲什麼zookeeper能實現分佈式鎖,他的優勢又在哪? 第三個角度:走進源碼一探究竟,知其然知其所以然

原创 spring源碼解析之原型模式下的循環依賴

衆所周知,Spring託管了我們對象的創建,銷燬,管理着整個bean的生命週期。但是在對象的創建過程中,有一種特殊情況,存在可能兩個bean之間互相引用,例如下面的TestA中引用了TestB,TestA中引用了TestA,即你中有我,我

原创 細說Spring自定義標籤

Spring自定義標籤總共可以分爲以下幾個步驟: 定義Bean 標籤解析生成接收配置的POJO。 定義schema文件,定義自定義標籤的attr屬性 定義解析類parser,遇到自定義標籤如何解析。 定義命名空間處理類namespaceS

原创 Spring源碼分析之單型模式Setter注入下的循環依賴

摘要:Spring中總共有三種循環依賴,原型模式的循環依賴,單例模式的構造器循環依賴,單例模式的Setter注入循環依賴。 前面兩種我已經寫過了,在這裏附上鍊接,有興趣的可以去了解下,今天會將最後一種,也算是比較重要的一種。 原型模式的

原创 SpringBoot集成通用Mapper+Generator自動生成Model,Mapper

一.引入有關jar包 <properties> <java.version>1.8</java.version> <!--mybatis--> <mybatis-boot.version

原创 Zookeeper源碼分析之leader選舉流程分析

1.爲什麼要進行leader選舉? 衆所周知,Zookeeper是一款分佈式協調調度框架。生來就是爲了解決分佈式中有關問題的。而今天要說的leader選舉,能幫我們解決分佈式環境下的數據一致性問題。在集羣模式下,Zookeeper集羣的

原创 Spring源碼解析之AOP篇(四)----註冊AnnotationAwareAspectJAutoProxyCreator的原因

摘要:上文解析了AnnotationAwareAspectJAutoProxyCreator的註冊過程,但是我們卻並沒有分析註冊它有何用?能在實現AOP功能的過程中起到什麼作用,今天我就會詳細分析! 一.註冊AnnotationAwa

原创 Spring源碼解析之AOP篇(一)----代理模式詳解

最近看了Spring中的AOP--面向切面編程,該功能極爲強大,能幫我們實現服務調用性能監控,權限控制,日誌增強,事務管理等功能,能在不改變原來業務代碼的前提下,悄無聲息的替我們動態織入,讓我們能更加的專注業務的實現。當瞭解到這,我非常

原创 Spring源碼解析之AOP篇(三)----Spring開啓AOP的兩種方式

一.基於XML的方式 在Spring的早些版本,流行xml的配置方式。只要在xml中配置如下的標籤以及屬性,Spring就會幫我們解析。 <!--開啓自動掃描--> <context:component-scan ba

原创 Spring源碼解析之AOP篇(二)----AOP名詞術語解釋

Spring AOP:Aspect-oriented Programming,即面向切面編程。在切面編程中,引入了一些新的概念,這在學習AOP之前,必須得弄清楚,且得明白它們之前的關聯關係,否則在後面的源碼學習中會比較繞。畢竟,弄清楚了

原创 Dubbo中SPI及自適應擴展機制二之原理篇

摘要:上一篇文章,我詳細的介紹了Java SPI和Dubbo SPI以及自適應擴展機制有關知識點,並輔以演示案例,本文也是基礎上一篇文章接過來的。有興趣的可以看看!接下來着重進行源碼分析。 Dubbo SPI及自適應擴展機制介紹篇:ht

原创 Dubbo中SPI機制及自適應擴展機制一之理論篇

一.SPI機制的概念 SPI的全稱是Service Provider Interface,是一種服務發現機制。它的主要目的是將某個接口的實現類的全限定名配置在以當前接口命名的文件中,在服務啓動時通過動態加載的方式實現自動注入。大概的意思

原创 Zookeeper源碼分析之徹底弄懂leader選舉底層原理

摘要:上一篇文章,我着重介紹了Zookeeper集羣中leader選舉的流程分析,感興趣的可以看看leader選舉流程詳解。這裏就不再贅述了,今天要講的是從源碼的角度去分析是如何進行leader選舉的,下面開始今天的主題。 本文是基於z

原创 spring源碼解析之單例模式下的構造器循環依賴

單例模式下的構造器循環依賴 單例模式下的構造器循環依賴和多例模式下的循環依賴大同小異。以下面的TestA,TestB爲例。 public class TestA { private TestB testB; publ

原创 SpringBoot源碼分析之爲何自動掃描功能爲主程序當前包

在SSM項目中,按照往常慣例,Spring需要在xml中配置開啓包掃描的功能去掃描相應包下帶有特定註解的類,然後幫我們創建實例,完成自動注入的功能。但是SpringBoot項目中,卻並沒有看到諸如此類的配置,在啓動類我同樣也沒有看到關於@