在 SpringApplication#refresh方法中,會(huì)去調(diào)用BeanDefinitionPostProcessor去進(jìn)行預(yù)處理,這里有一個(gè)很重要的 processo...
在 SpringApplication#refresh方法中,會(huì)去調(diào)用BeanDefinitionPostProcessor去進(jìn)行預(yù)處理,這里有一個(gè)很重要的 processo...
入口類 在了解 Spring Boot 的啟動(dòng)流程的時(shí)候,我們先看一下一個(gè)Spring Boot 應(yīng)用是如何啟動(dòng)的,如下是一個(gè)簡(jiǎn)單的 SpringBoot 程序,非常的簡(jiǎn)潔,...
這個(gè)系列將以 Spring boot 2.3.x 的版本講解 Spring boot源碼,主要涵蓋整個(gè)容器的啟動(dòng)過(guò)程:1、首先我們先進(jìn)行源碼下載:Spring boot[ht...
接下來(lái),我們將講解 druid pool 包以外的包解析,這次我們先從 wallFilter 開(kāi)始說(shuō)起,我們先來(lái)寫一個(gè) wallFilter 的 example,首先我們需...
上一節(jié)我們挖了個(gè)坑,還剩下 poolUpdater 還沒(méi)講,我們這期接著講一下這個(gè)點(diǎn),我們同樣也是從初始化方法開(kāi)始: 這里邏輯很簡(jiǎn)單,顯示檢查了 intervalSecond...
我們了解完 HighAvailableDataSource 如何使用后,我們繼續(xù)來(lái)了解他是如何運(yùn)行了,我們先看一下他的初始化方法: 首選雙重檢查,防止初始化多次 HighA...
關(guān)于 HighAvailableDataSource 的介紹,我們可以看一下官方文檔[https://github.com/alibaba/druid/blob/master...
我們今天來(lái)解析一下一個(gè)簡(jiǎn)單的 select SQL 在我們的系統(tǒng)的流轉(zhuǎn)流程。我們知道,執(zhí)行SQL主要的流程是:開(kāi)啟事務(wù) -> 生成 PrepareStatement -> ...
我們?cè)趧?chuàng)建鏈接的時(shí)候會(huì)發(fā)現(xiàn),返回給 Mybatis 的并不是一個(gè)簡(jiǎn)單的 connection 而是一個(gè) DruidPooledConnection 這里是一個(gè)我們需要注意點(diǎn)...
我們回頭看DataSource的接口,它里面只定義了兩個(gè)方法,如下,我們今天來(lái)分析第一個(gè)也是最重要的方法 getConnection: 1.1 具體實(shí)現(xiàn) 我們先看一下 Dru...
回想我們上節(jié)的內(nèi)容,有兩個(gè)地方跳過(guò)了,一個(gè)是啟動(dòng)創(chuàng)建鏈接的線程,一個(gè)是啟動(dòng)銷毀鏈接的線程,我們這次就來(lái)詳細(xì)的探究一番這兩個(gè)的用途。 創(chuàng)建連接線程 首先我們需要回頭介紹之前沒(méi)有...
1.1 SpringAutoConfig 對(duì)于一個(gè)SpringBoot Starter 我們都會(huì)從他的 spring.factories 開(kāi)始看起,因?yàn)檫@里定義了其配置類信息...
1.背景 druid目前是國(guó)內(nèi)使用最廣泛的數(shù)據(jù)庫(kù)連接池,了解學(xué)習(xí)其源碼無(wú)疑對(duì)我們的工作有很好處,這次源碼學(xué)習(xí)主要是針對(duì) druid 的核心功能 pool 進(jìn)行分析,其中會(huì)附帶...
場(chǎng)景 最近生產(chǎn)上執(zhí)行日批量一直停留到了某一天,但是卻沒(méi)有收到中斷報(bào)警,后面客戶反饋缺少統(tǒng)計(jì)數(shù)據(jù)才發(fā)現(xiàn)該問(wèn)題。后面查看日志只發(fā)現(xiàn)了一個(gè) java.lang.NullPointe...
作者: 一字馬胡[http://m.itdecent.cn/u/86c421886c32] 轉(zhuǎn)載標(biāo)志 【2017-11-03】 更新日志 日期更新內(nèi)容備注2017-1...
IO基本概念 Linux的內(nèi)核將所有外部設(shè)備都可以看做一個(gè)文件來(lái)操作,而對(duì)一個(gè)文件的讀寫都是通過(guò)內(nèi)核提供的系統(tǒng)調(diào)用,內(nèi)核給我們返回一個(gè)文件描述符file descriptor...
Spring Bean的生命周期是Spring面試熱點(diǎn)問(wèn)題。這個(gè)問(wèn)題即考察對(duì)Spring的微觀了解,又考察對(duì)Spring的宏觀認(rèn)識(shí),想要答好并不容易!本文希望能夠從源碼角度入...
基于上次介紹的Rxjava 的基礎(chǔ),我們今天再來(lái)聊一下 Hystrix,我們先看一下 Hystrix 整體處理流程圖: Hystrix 在設(shè)計(jì)之初主要為了解決以下問(wèn)題:分布...
在講 Hystrix 插件前,我們需要先了解一下 Hystrix 的具體實(shí)現(xiàn),Hystrix 限流框架基于 大名鼎鼎的 RxJava 實(shí)現(xiàn),我們這節(jié)先來(lái)了解一下 RxJava...
1.8.5.1 環(huán)境準(zhǔn)備 安裝 redis:Soul 需要集群部署,所以需要將令牌集中管理,Redis 無(wú)疑是一個(gè)很好的選擇。 在 soul admin 開(kāi)啟 ratelim...