成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring AOP 源碼初窺(一) 概念

CarterLi / 1493人閱讀

摘要:而面向切面編程理所當(dāng)然關(guān)注于切面,那么什么是切面可以理解為程序執(zhí)行時的某個節(jié)點,或更具體一點,在某個方法執(zhí)行之前,執(zhí)行之后,返回之后等其它節(jié)點。術(shù)語一個切面,可以理解為一個切面模塊,將相關(guān)的增強內(nèi)容寫進(jìn)同一個切面。例如一個負(fù)責(zé)日志的切面。

AOP是什么

AOP全稱 Aspect-Oriented Programming 即面向切面編程。怎么樣,是不是感覺很熟悉?對,類似的還有面向過程編程(Procedure-Oriented Programming),面向?qū)ο缶幊?/strong>(Object-Oriented Programming)。如果對后面兩種編程方式有一定的了解,那么對于AOP想必也就比較容易理解了。

就像面向?qū)ο缶幊?/strong>,關(guān)注點在于對象,即。而面向切面編程理所當(dāng)然關(guān)注于切面,那么什么是切面?可以理解為程序執(zhí)行時的某個節(jié)點,或更具體一點,在某個方法執(zhí)行之前,執(zhí)行之后返回之后等其它節(jié)點。

幾個概念的區(qū)別 1. AspectJ

AspectJ是一個基于Java語言的AOP框架,它采用編譯時增強,會將增強目標(biāo)編譯得到一個新的AOP代理類。

2. Spring AOP

Spring提供的AOP框架,使用了和AspectJ一樣的注解,但是通過動態(tài)生成代理類的方式生成AOP代理類。

3. JDK Dynamic AOP

Spring AOP中AOP代理的一種實現(xiàn),使用原生JDK反射和動態(tài)代理生成AOP代理,需要代理類與目標(biāo)實現(xiàn)相同的接口。

4. CGLib AOP

Spring AOP中AOP代理的另一種實現(xiàn),使用CGLib動態(tài)生成AOP代理類,需要代理類為目標(biāo)類的子類。

AOP術(shù)語 1. Aspect

一個切面,可以理解為一個切面模塊,將相關(guān)的增強內(nèi)容寫進(jìn)同一個切面。例如:一個負(fù)責(zé)日志的切面。

2. Join Point

代表可以由AOP增強織入的程序執(zhí)行節(jié)點。

3. Advice

所要做的增強處理

4. Pointcut

切入點,定義了將被Advice增強的一個或多個Join Point,可以使用正則表達(dá)式或模式匹配。

5. Target object

被增強的目標(biāo)對象

Adivce的種類 1. Before

方法執(zhí)行之前

2. After

方法執(zhí)行之后

3. After-returning

方法成功執(zhí)行完成之后

4. After-throwing

方法拋出異常之后

5. Around

環(huán)繞方法執(zhí)行的整個周期

參考鏈接

Spring AOP 實現(xiàn)原理與 CGLIB 應(yīng)用

AOP with Spring Framework

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76555.html

相關(guān)文章

  • Spring AOP 源碼初窺(二) 從注解開始

    摘要:版本從注解開始由于在本人實際應(yīng)用中使用的是注解配置,也更傾向于了解的整個實現(xiàn),而不僅僅是關(guān)鍵實現(xiàn)。于是本篇源碼解析,將會從注解開始。那么,便從的源碼引用開始吧。的引用先從源碼中找有引用到,用來判斷是否有該注解的代碼。 版本 spring 5.0.8.BUILD-SNAPSHOT aspectjweaver 1.8.13 從注解開始 由于在本人實際應(yīng)用中使用的是注解配置AOP,也更傾...

    Amio 評論0 收藏0
  • Spring AOP 源碼初窺(三)掃描Advice與Bean匹配

    摘要:版本如何掃描接上一回,講到了方法,該方法的目的是獲取并生成。其中英文為源碼注釋。那么,以上便是通過掃描配置并生成的過程了。一些總結(jié)讀到這兒,如何掃描配置,生成類,并匹配對應(yīng)的整個流程已經(jīng)很清楚了。 版本 spring 5.0.8.BUILD-SNAPSHOT aspectjweaver 1.8.13 如何掃描Advice 接上一回,講到了getAdvicesAndAdvisorsF...

    oysun 評論0 收藏0
  • 后臺開發(fā)常問面試題集錦(問題搬運工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評論0 收藏0
  • 后臺開發(fā)常問面試題集錦(問題搬運工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    xfee 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<