原创 深入淺出Mybatis源碼解析——全局配置文件解析(全局配置文件解析加載流程附篇)

前言 首先要說下停更這麼久的原因,因爲工作上最近有點忙,加上學習債的繁重以至於沒有繼續更新Mybatis源碼解析的文章,所以趁着忙裏偷閒,來簡單的更新一篇。 在上一篇文章深入淺出Mybatis源碼解析——全局配置文件解析加載流程中,我們講

原创 關於創建線程的方式有幾種

導語 在我們平常的面試中,我們經常會被面試官問道:你知道Java中多線程的實現方式有幾種嗎?在網上刷過面試題的童鞋們,一般都會說兩種:繼承Thread、實現Runnable,甚至還有甚者可能會說三種、四種的,對於說三種四種的一般都是把什麼

原创 再說Spring Boot的自動裝配原理

導語 由於疫情原因,基本上大家過了半個暑假了,過年在家的時候,感覺貌似很少有人去寫技術文章,於是我也隨了大流,其實更多的原因是家裏比較忙,最近忙完手頭的一些事情,想着要繼續回來寫點東西,考慮了一下還是繼續接着之前的那篇文章來寫吧! 前面的

原创 Spring 組件註冊之註解@Configuration和@Bean

導語 前些天,以爲剛接觸Spring的朋友,問我她代碼中的@Bean("XXX")中的這個“XXX”怎麼和bean 的名字怎麼不一樣,然後我就想着是不是該寫一下這類博客。其實說到這裏我要說一下她當時寫的代碼是在一個類中使用了@Config

原创 深入淺出Mybatis源碼解析——獲取Mapper代理對象流程

前言 在上一篇文章深入淺出Mybatis源碼解析——SqlSource的創建流程中,說了SqlSource的創建流程這樣一個完整的創建流程,在這個流程中包含了:動態SQL標籤處理器、解析動態SQL、創建MappedStatement對象。

原创 深入淺出Mybatis源碼解析——SqlSource的創建流程

前言 在前一篇文章深入淺出Mybatis源碼解析——映射文件加載流程中,最後說到了創建SqlSource和創建MappedStatement對象,由於篇幅原因最後只好終止了,所以便只好在寫一篇文章來說說SqlSource這樣的一個創建流程

原创 Spring Boot 的java -jar命令啓動原理

導語 在運用Spring Boot 後,我們基本上擺脫之前項目每次上線的時候把項目打成war包。當然也不排除一些奇葩的規定,必須要用war包上線,不過很多時候,我們對一些東西只是處在使用的階段,並不會去深入的研究使用的原理是什麼,這貌似也

原创 深入淺出Mybatis源碼解析——映射文件加載流程

前言 在前兩篇文章中,簡單了說了下Mybatis全局配置文件解析加載流程和和全局配置文件的部分標籤解析,但是還並沒有涉及到核心的解析。所以本篇文章將開始核心解析的部分,那就是mappers標籤的解析。可能有人很奇怪這爲什麼不在前兩篇文章中

原创 深入淺出Mybatis源碼解析——SqlSession執行主流程(補)

前言 由於Mybatis的源碼系列文章,期間有長時間的脫節,導致筆者在寫代碼解析的時候中間出現了斷裂,這個要和大家說聲對不起,因此本篇文章是補深入淺出Mybatis源碼解析——獲取Mapper代理對象流程照片文章的,在這篇文章中簡單的說了

原创 Java併發編程之synchronized底層實現原理

  一、爲什麼出現synchronized 對於程序員而言,不管是在平常的工作中還是面試中,都會經常用到或者被問到synchronized。在多線程併發編程中,synchronized早已是元老級的角色了,很多人都稱其爲重量級鎖,但是隨着

原创 爲什麼不建議數據庫建外鍵

導語 有人可能在面試的時候被問到過,你覺得爲什麼不建議數據庫通過構建外鍵做約束?你可以回答說,在《阿里Java開發手冊》中是這樣說的:不得使用外鍵與級聯,一切外鍵概念必須在應用層解決。而且這個規約是強制的。但是我想這樣的答案,可能並不能讓

原创 JDK集合源碼解析——LinkedList

前言 上一篇文章對ArrayList的源碼進行了一個簡單的解析,那麼本篇將對ArrayList的“兄弟”集合類LinkedList進行解析,相對於ArrayList而言,LinkedList的源碼相對複雜一點點,但還沒難道難以閱讀的地步,

原创 深入淺出Mybatis源碼解析——全局配置文件解析加載流程

前言 前面筆者其實已經寫了兩篇關於Mybatis源碼解析的文章,可後面自覺其解析的不夠全面,但是那兩篇文章完全是按照debug模式,簡單的走了一遍流程去解析的,對於Mybatis內部的很多類的屬性以及類的作用都沒有做相關介紹。後來想想還是

原创 關於爲什麼線程通信的方法wait()、notify()、notifyAll()被定義在Object類裏面?而sleep爲什麼定義在Thread類裏面?

導語 在面試中經常會被問到多線程的知識,而在這個知識範圍內,我們也會被問到關於wait、notify等這些方法。一般基礎點的都會問使用的方法,當然這只是初級的問題,那麼稍微深點的問題,可能就像我們標題這樣:爲什麼線程通信的方法wait()

原创 Spring Boot 初始化階段解析

導語 前面筆者寫過一篇關於Spring Boot 自動裝配的文章:再說Spring Boot的自動裝配原理,這篇文章是從裝配的角度上去進行闡述的,其間主要是對@SpringBootApplication 這個註解進行展開,然後進行一些列的