原创 MySQL日誌文件解析(binlog)

前言:     binlog(二進制文件)一直來說都是一個比較難搞懂的點,筆者前後讀了幾遍,讀了當時理解了,但是事後還是很模糊,尤其是跟redo log放在一起的時候,更是蒙的不行。     總結原因:還是沒有真正理解binlog的作用。

原创 通過Wireshark學習三次握手、四次揮手

前言:     TCP的三次握手、四次揮手是大家耳熟能詳的。     筆者實際是個網絡方面的渣渣。每次在面試前都要狂補一下相關知識點用於應付面試(大家都懂的。。哈哈)。     但是老是這樣也不行,每次都是一個模糊的概念,所以這次準備用W

原创 ApplicationEvent與ApplicationListener

前言:     Spring的世界中有這麼一對好基友,兩個人總是同時出現,相愛相殺。這就是ApplicationEvent與ApplicationListener。感覺有點像小偷和警察,只要ApplicationEvent一出現,Appl

原创 FactoryBean和BeanFactory

前言:     這是一個很容易被問到的關於Spring的面試題。     兩個特別像,但是功能卻千差萬別。     有關於BeanFactory,我們都知道,這是Spring容器的基礎實現類,它負責生產和管理Bean的一個工廠。當然Bea

原创 定製化Bean的利器:BeanPostProcessor、BeanFactoryPostProcessor

前言:     Spring的面試中,一般都會問到IOC和AOP,大部分同學都能回答出這些知識點的基本運用,如果再多問一句,AOP的底層實現方式,大部分人都會回答動態代理。那麼動態代理是如何被使用到Bean上的呢?到這裏可能要刷掉一大部分

原创 @Autowired使用全紀錄

前言:     @Autowired應該是我們在Spring項目中最常用的註解了。     使用起來非常方便,但是一旦出現問題調試起來也是比較麻煩的。     筆者就是這樣,平時用來一時爽,出現問題兩行淚。     究其原因,還是對@Au

原创 @Resource那點事

前言:     在項目開發中,@Autowired和@Resource之爭,一直搞不清楚,反正也不想搞清楚到底什麼時候用@Autowired,什麼場景下用@Resource,就一直用@Autowired得了。     現在又到了還賬的時候

原创 Spring容器生命週期管理:SmartLifecycle

前言:     筆者之前在項目中倒也沒有關注過Spring容器的生命週期管理(大家注意下:之前一篇博客介紹的是Spring中Bean的生命週期管理,與目前要介紹的Spring容器的生命週期管理倒還是千差萬別的,千萬不要混淆了)。    

原创 Spring如何引入其他資源:和@Import @ImportResource

前言:     作爲一箇中型的基於Spring的項目時,我們經常會分模塊開發,那麼bean定義文件我們如何分配和管理呢?是都放在一個配置文件中嘛?     我們在老項目二次開發的時候,經常會遇到需要使用之前的beans配置文件,集成到當前

原创 Spring控制Bean生命週期行爲的幾種方式

前言:     Spring中的Bean從創建到銷燬經歷了一個又一個階段,在這些階段中,我們可以通過某些方法來控制Bean的創建、Bean的銷燬。     在Spring的官方文檔中,有這麼一段話 As of Spring 2.5, y

原创 Spring官方文檔學習:和@Bean

前言:     Spring中最重要的概念IOC和AOP,實際圍繞的就是Bean的生成與使用。     什麼叫做Bean呢?我們可以理解成對象,每一個你想交給Spring去託管的對象都可以稱之爲Bean。     今天通過Spring官方

原创 Spring官方文檔學習:開篇

前言:     入行也算有幾年了,Spring也是一直都在用,源碼也看了一些,相關博客也寫了一些,但是總覺得還是對Spring的理解不夠深入。仔細想來,應該是Spring的使用還不夠深入,所以導致理解也不夠深入。     痛定思痛,決心把

原创 JDK源碼解析之ThreadPoolExecutor

前言:     線程池的使用在java開發中屢見不鮮,我們一般會這樣使用 // 1.創建一個固定線程數的線程池 ExecutorService threadPool = Executors.newFixedThreadPool(5);

原创 JDK源碼解析之AtomicInteger及CAS

前言:     JDK中的鎖大致可以分爲兩類:Synchronized和CAS。     CAS的使用中,有直接使用的,比如AtomicInteger;有間接使用的比如ReentrantLock。     本文就說一下直接使用CAS的At

原创 JDK源碼解析之AbstractQueuedSynchronizer

前言:     JDK中的鎖大致可以分爲兩類:Synchronized和CAS。     CAS的使用中,有直接使用的,比如AtomicInteger;有間接使用的比如ReentrantLock。關於AtomicInteger的分析可參考