閑言碎語
首先說說Spring高級框架,我把Spring高級框架分為三個部分:
- ssh=spring+struts+hibernate
- ssm=spring+springmvc+mybatis
- spring全家桶=腳手框架springboot、微服務(wù)框架springcloud等等
今天要講的就是spring高級源碼,讀源碼絕對算得上是一件費時費力的工作,需要讀者耗費大量的時間去完成,但是一旦你認真去做了,你可以更好的掌握框架;更好的處理代碼中出現(xiàn)的問題或者bug;同時離架構(gòu)師又更進了一步。
Spring是一 個分層非常清晰并且依賴關(guān)系、職責定位非常明確的輕量級框架,主要包括幾個大模塊:
- 數(shù)據(jù)處理模塊
- Web模塊
- AOP (Aspect Oriented Programming) /Aspects模塊
- Core Container模塊和Test模塊
spring依靠這些基本模塊, 實現(xiàn)了一個令人愉悅的融合了現(xiàn)有解決方案的零侵入的輕量級框架。
不多說,一起跟著谷歌大神抽絲剝繭,把spring核心部分撕碎,徹底讀懂spring源碼,理解框架,本文一共分為七個部分,內(nèi)容較多,小編下面以文字+截圖形式為大家展示
Spring概述
- Spring簡介
Spring 是分層的 full-stack(全棧) 輕量級開源框架,以 IoC和AOP為內(nèi)核,提供了展現(xiàn)層SpringMVC 和業(yè)務(wù)層事務(wù)管理等眾多的企業(yè)級應(yīng)用技術(shù),還能整合開源世界眾多著名的第三方框架和類庫,已經(jīng)成為使用最多的 Java EE 企業(yè)應(yīng)用開源框架。
- Spring發(fā)展歷程
- Spring的優(yōu)勢
- Spring的核心結(jié)構(gòu)(如下圖)
- Spring的框架版本
Spring的核心思想
IOC和AOP不是spring提出的,在spring之前就已經(jīng)存在,只不過更偏向于理論化,spring在技術(shù)層次把這兩個思想做了非常好的實現(xiàn)(Java)
IoC
- 什么是IoC
- IoC解決了什么問題
- IoC和DI的區(qū)別
AOP
- 什么是AOP
- AOP在解決什么問題
- 為什么叫做面向切面編程
手寫實現(xiàn) IoC 和 AOP
上個部分我們理解了IoC和AOP思想,我們先不考慮Spring是如何實現(xiàn)這兩個思想的,此處準備了一個【銀行轉(zhuǎn)賬】的案例,請分析該案例在代碼層次有什么問題 ?分析之后使用我們已有知識解決這些問題(痛點)。其實這個過程我們就是在一步步分析并手寫實現(xiàn) IoC和AOP。
- 銀行轉(zhuǎn)賬界面
- 銀行轉(zhuǎn)賬案例表結(jié)構(gòu)
- 銀行轉(zhuǎn)賬案例代碼調(diào)用關(guān)系
- 銀行轉(zhuǎn)賬案例關(guān)鍵代碼
- 銀行轉(zhuǎn)賬案例代碼問題分析
- 問題解決思路
- 案例代碼改造
Spring IOC 應(yīng)用
Spring IoC基礎(chǔ)
- BeanFactory與ApplicationContext區(qū)別
- 純xml模式
- xml與注解相結(jié)合模式
- 純注解模式
Spring IOC高級特性
- lazy-Init 延遲加載
- FactoryBean 和 BeanFactory
- 后置處理器
Spring IOC源碼深度剖析
Spring IoC容器初始化主體流程
- Spring IoC的容器體系
- Bean生命周期關(guān)鍵時機點
- Spring IoC容器初始化主流程
BeanFactory創(chuàng)建流程
- 獲取BeanFactory子流程
- BeanDefinition加載解析及注冊子流程
Bean創(chuàng)建流程
lazy-init 延遲加載機制原理
Spring IoC循環(huán)依賴問題
- 什么是循環(huán)依賴
- 循環(huán)依賴處理機制
Spring AOP 應(yīng)用
AOP本質(zhì):在不改變原有業(yè)務(wù)邏輯的情況下增強橫切邏輯,橫切邏輯代碼往往是權(quán)限校驗代碼、日志代碼、事務(wù)控制代碼、性能監(jiān)控代碼。
AOP 相關(guān)術(shù)語
- 業(yè)務(wù)主線
- AOP 術(shù)語
Spring中AOP的代理選擇
Spring中AOP的配置方式
Spring中AOP實現(xiàn)
- XML 模式
- XML+注解模式
- 注解模式
Spring 聲明式事務(wù)的支持
Spring AOP源碼深度剖析
代理對象創(chuàng)建
- AOP基礎(chǔ)用例準備
- 時機點分析
- 代理對象創(chuàng)建流程
Spring聲明式事務(wù)控制
- @EnableTransactionManagement
- 加載事務(wù)控制組件
總結(jié)
這份滿滿都是干貨的Spring高級源碼筆記是由華南谷歌架構(gòu)師總結(jié)出來的,這位大佬對于Spring框架的理解程度真的以及到了一個“恐怖變態(tài)”的地步了,之前小編還看過這個大佬的一個視頻,講的非常nb,跪服!