Spring源碼閱讀之動態代理和AOP標籤解析-第1篇

0. 導讀

經過前面十幾篇的 Spring 源碼解讀,IOC 流程暫時告一段落,接下來幾篇文章我們來講講另外一個話題 AOP。

AOP(Aspect Oriented Programming),即面向切面編程,它並不是 Spring 新提出來的概念,而是一種軟件思想,Spring 只是該思想的一個具體應用。

本文不會講解 AOP 的基本概念,如果不清楚的讀者可以自行 Google 一下。

  • JDK 動態代理和 CGlib 動態代理實現方式

  • AOP 解析 <aop:aspectj-autoproxy/> 標籤流程

    1. JDK 動態代理實

目標類
代理類
測試類

2. CGlib 動態代理實現

pom依賴
代理類
測試類

3.<aop:aspectj-autoproxy/> 流程分析

大家都知道,AOP 功能是通過打開 <aop:aspectj-autoproxy/> ,前面文章介紹過自定義標籤,不熟悉的朋友可以翻翻原來的文章,我們找到AopNamespaceHandler來看看是如何解析這個標籤的。

init流程
parse流程
useClassProxyingIfNecessary流程

4. 總結

本文介紹了兩種動態代理方式,分析了 <aop:aspectj-autoproxy/> 標籤解析流程,同時註冊了AnnotationAwareAspectJAutoProxyCreator下篇文章我們來分析 Spring 的 AOP 是怎麼實現的,敬請期待。

創作不易,白嫖點個再看,喜歡加個關注

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章