原创 Spring源碼閱讀之ignoreDependencyInterface方法

先看下源碼 在容器初始化時,會調用這個ignoreDependencyInterface方法。 這個方法的意識是:忽略給定接口的自動裝配功能。 可以看到用一個set集合來存放要忽略的接口。 這麼做的目的是什麼? Spring採用

原创 zookeeper第二章

分佈式系列文章——Paxos算法原理與推導 寫的很棒啊

原创 jdbcTemplate源碼分析

先看下jdbcTemplate的update方法,保存user對象。傳入sql語句、值及對應的類型。 進入update源碼 setValues用於設置preoaredStatement所需要的全部參數。 execute是數據

原创 Spring中bean的初始化實踐與源碼分析

實踐 我這邊以Springboot來測試 實現一個B類 定製一個BeanPostProcessor處理器,並創建B實例到容器中,指定了B的initMethod方法爲init()。 運行結果 源碼學習 上篇文章大概分析過了po

原创 SpringBatch學習

什麼是SpringBatch Spring Batch 是一個輕量級的、完善的批處理框架(並不是調度框架,需要配合Quartz等框架,實現定時任務),旨在幫助企業建立健壯、高效的批處理應用。 Spring Batch 提供了大量可

原创 AOP源碼分析

首先了解下AOP使用 1.創建一個用於攔截的bean @Component @Slf4j public class TestBean { private String testStr = "testStr"; p

原创 grpc學習

什麼是grpc? GRPC是一個高性能、通用的開源RPC框架,基於HTTP/2協議標準和Protobuf序列化協議開發,支持衆多的開發語言。 同類技術有哪些? http://colobu.com/2016/09/05/benchm

原创 SpringBoot-Reactive響應式編程

什麼是響應式編程? 響應式編程是就是對於數據流和傳播改變的一種聲明式的編程規範。響應式編程是基於異步和事件驅動的非阻塞程序。 在命令式編程的模式下,定義了 a=b+c,那麼 a 的值再執行了這條語句後就被分配了 b+c 的結果,

原创 ApplicationContext初始化源碼

ApplicationContext和BeanFactory都是用於加載Bean的,該接口用於擴展BeanFactory功能,比BeanFactory更強大。 @Override public void refresh()

原创 Kafka之Producer生產者

Kafka生產者的消息對象定義: topic:主題名稱 partition:指定的分區號 headers:消息頭部,一般不用指定。 key:用來指定消息的鍵,它不僅僅是消息附加信息,可以通過它來計算分區號來發往指定分區。top

原创 Redis哨兵及集羣模式

哨兵模式 它是一種高可用的解決方案,sentinel本身是一個獨立運行的進程,可以部署在其他與Redis集羣可通訊的機器中監控Redis集羣。 監控:哨兵會定時監控redis是否良好運行。 提醒:如果哨兵發現某個redis

原创 List中使用for循環的坑

首先記住,for循環List不允許重新賦值。 今天,寫了一個這樣的方法,調試時,發現搞不定,我開始佩服自己寫的bug了。。哈哈。 這個方法是這樣的,傳進來規則List對象裏頭有公司及對應比例,然後我需要將每個RuleInfoVo規

原创 創建Bean時的populateBean方法

先看一下創建對象的doCreateBean方法 直接進入populateBean方法: 大體流程是這樣的,先通過postProcessAfterInstantiation函數,該函數可以控制是否繼續屬性填充。然後根據byNam

原创 SpringBoot之使用MongoDB

上一節中,介紹了Docker相關操作,並運行了一個mongodb鏡像。 回顧 Docker和虛擬機比有什麼區別? 虛擬機需要模擬硬件,並且每個虛擬機都有自己的操作系統。 Docker輕量級,使用的是宿主機的操作系統,進程在用戶控件

原创 Docker入門

前言 首先理解一下容器和虛擬機的區別。 虛擬機:大家常用的是VMware,模擬整臺機器包括硬件,每臺虛擬機都需要有自己的操作系統,虛擬機一旦被開啓,預分配給它的資源將全部被佔用。每一臺虛擬機包括應用,必要的二進制和庫,以及一個完整