Spring源碼解析系列彙總

相信我,你會收藏這篇文章的

本篇文章是這段時間擼出來的Spring源碼解析系列文章的彙總,總共包含如下專題。喜歡的同窗能夠收藏起來以備不時之需git

SpringIOC源碼解析(上)github

  1. 本篇文章搭建了IOC源碼解析的demo環境,啓動這個環境便可開啓閱讀Spring源碼的第一步
  2. 開始源碼閱讀時介紹了Spring容器中最經典的容器ClassPathXmlApplicationContext,這個容器是咱們在學習Spring的時候最早接觸的一個容器,它負責加載當前環境下的xml配置文件
  3. 緊接着介紹了bean工廠BeanFactory以及容器中bean的包裝類BeanDefinition
  4. 而後就是Spring對xml配置文件的加載和解析
  5. 當解析的beans標籤中各個bean中時將會把這個東東使用BeanDefinition包裝後註冊到容器中
  6. bean註冊完成後會有一些Spring對BeanFactory的擴展點的處理
  7. 固然除了擴展點還有國際化、監聽器等操做

SpringIOC源碼解析(下)web

  1. 開篇先介紹了conversionServiceEmbeddedValueResolver兩個比較有意思的東東
  2. 而後就是重點的bean的初始化
  3. 初始化過程當中涉及到了singletonprototype兩個Scope的bean的處理
  4. 固然,還有使人頭疼的循環依賴問題
  5. 建立bean的過程當中還有咱們熟悉的@Autowired註解注入屬性的方式
  6. 接着就是一些清除緩存的操做

SpringIOC源碼解析(基於註解)
閱讀本篇文章以前建議您首先查看上方兩篇文章,由於本篇主要是描述了基於註解的方式和基於xml配置文件方式的異同點spring

  1. 源碼閱讀環境的搭建
  2. 首先簡單描述了bean容器AnnotationConfigApplicationContext
  3. 而後源碼執行的第一步就是關於包掃描一塊的東西,也就是咱們比較熟悉的註解@ComponentScan
  4. 掃描到了各個帶有註解的類以後就是讀取類呀、反射呀什麼的來加載類
  5. bean已經加載完後就是bean的註冊邏輯了

相比較與以前兩篇文章的長篇大論,這篇文章的篇幅要少不少,這主要得益於Spring的設計精妙和代碼之優雅segmentfault

基於註解的SpringAOP源碼解析(一)緩存

  1. 源碼閱讀環境的搭建
  2. @EnableAspectJAutoProxy註解的原理
  3. @EnableAspectJAutoProxy註解又使用到了@Import註解,關於@Import註解的文章下面有地址

基於註解的SpringAOP源碼解析(二)微信

  1. 首先提到了SpringAOP是基於postProcessBeforeInstantiationpostProcessAfterInstantiation兩個方法實現的,這篇文章主講postProcessBeforeInstantiation
  2. 加載加強
  3. 獲取全部的加強又對加強進行了一系列的封裝

基於註解的SpringAOP源碼解析(三)post

  1. postProcessAfterInstantiation開篇
  2. 全部的bean在初始化以後都會調用這個方法
  3. 在這裏獲取到以前加載到的全部的加強,和類的全部方法一一匹配
  4. 當類具備匹配加強的時候就能夠爲這個類生成具體的代理了

SpringJDBC源碼解析學習

  1. 傳統JDBC的使用
  2. 源碼閱讀環境的搭建
  3. 使用JdbcTemplate以update方法切入
  4. 獲取鏈接加載驅動等方法的封裝
  5. 請求參數的封裝
  6. 調用驅動提供的方法
  7. query方法的分析,與update僅有返回結果的處理不一樣其餘徹底相同

Spring @Import註解源碼解析ui

  1. 三種使用方式
  2. 加載時機
  3. 對不一樣使用方式的處理方式

Spring事務源碼解析(一)

  1. 源碼閱讀環境的搭建
  2. @EnableTransactionManagement註解的原理解析

Spring事務源碼解析(二)獲取加強
讀到這裏的朋友但願您最好對AOP的源碼有必定的瞭解

  1. 加強的獲取
  2. @Transactional註解屬性的解析

Spring事務源碼解析(三)

  1. 建立事務信息(包含事務隔離級別的處理等)
  2. 調用執行鏈
  3. 異常回滾
  4. 清除事務信息
  5. 提交事務

SpringMVC源碼解析(一)

  1. 源碼閱讀環境的搭建
  2. SpringBoot中SpringMVC自動配置原理
  3. DispatcherServlet的初始化邏輯
  4. web容器的初始化

SpringMVC源碼解析(二)

  1. 獲取對應的handler
  2. 獲取對應的handlerAdapter
  3. 調用handle
  4. 執行攔截器
  5. 處理返回結果

源碼閱讀環境

您可能注意到上方文章中包含了不少源碼閱讀環境的搭建,當真正本身要去閱讀時搭建起來仍是比較浪費時間的。因此我把這些工做都替您作好了,您能夠直接訪問下方連接獲取
https://github.com/shiyujun/s...

後續規劃

  1. Spring經常使用擴展點的應用場景
  2. SpringBoot源碼解析
  3. SpringCloud經常使用組件源碼解析
  4. MyBatis、druid源碼解析
  5. 阿里開源Nacos、Sentinel、Seata源碼解析
  6. K8S、Istio源碼解析
  7. 等等

交流羣
爲了方便你們的交流學習,特地搞了個技術交流羣,有興趣的同窗能夠掃描下方二維碼進羣。如二維碼過時可在公衆號添加小編的微信發送暗號進羣
1

1

相關文章
相關標籤/搜索