摘要:而面向切面編程理所當然關注于切面,那么什么是切面可以理解為程序執行時的某個節點,或更具體一點,在某個方法執行之前,執行之后,返回之后等其它節點。術語一個切面,可以理解為一個切面模塊,將相關的增強內容寫進同一個切面。例如一個負責日志的切面。
AOP是什么
AOP全稱 Aspect-Oriented Programming 即面向切面編程。怎么樣,是不是感覺很熟悉?對,類似的還有面向過程編程(Procedure-Oriented Programming),面向對象編程(Object-Oriented Programming)。如果對后面兩種編程方式有一定的了解,那么對于AOP想必也就比較容易理解了。
就像面向對象編程,關注點在于對象,即類。而面向切面編程理所當然關注于切面,那么什么是切面?可以理解為程序執行時的某個節點,或更具體一點,在某個方法執行之前,執行之后,返回之后等其它節點。
幾個概念的區別 1. AspectJAspectJ是一個基于Java語言的AOP框架,它采用編譯時增強,會將增強目標編譯得到一個新的AOP代理類。
2. Spring AOPSpring提供的AOP框架,使用了和AspectJ一樣的注解,但是通過動態生成代理類的方式生成AOP代理類。
3. JDK Dynamic AOPSpring AOP中AOP代理的一種實現,使用原生JDK反射和動態代理生成AOP代理,需要代理類與目標實現相同的接口。
4. CGLib AOPSpring AOP中AOP代理的另一種實現,使用CGLib動態生成AOP代理類,需要代理類為目標類的子類。
AOP術語 1. Aspect一個切面,可以理解為一個切面模塊,將相關的增強內容寫進同一個切面。例如:一個負責日志的切面。
2. Join Point代表可以由AOP增強織入的程序執行節點。
3. Advice所要做的增強處理
4. Pointcut切入點,定義了將被Advice增強的一個或多個Join Point,可以使用正則表達式或模式匹配。
5. Target object被增強的目標對象
Adivce的種類 1. Before方法執行之前
2. After方法執行之后
3. After-returning方法成功執行完成之后
4. After-throwing方法拋出異常之后
5. Around環繞方法執行的整個周期
參考鏈接Spring AOP 實現原理與 CGLIB 應用
AOP with Spring Framework
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76555.html
摘要:版本從注解開始由于在本人實際應用中使用的是注解配置,也更傾向于了解的整個實現,而不僅僅是關鍵實現。于是本篇源碼解析,將會從注解開始。那么,便從的源碼引用開始吧。的引用先從源碼中找有引用到,用來判斷是否有該注解的代碼。 版本 spring 5.0.8.BUILD-SNAPSHOT aspectjweaver 1.8.13 從注解開始 由于在本人實際應用中使用的是注解配置AOP,也更傾...
摘要:版本如何掃描接上一回,講到了方法,該方法的目的是獲取并生成。其中英文為源碼注釋。那么,以上便是通過掃描配置并生成的過程了。一些總結讀到這兒,如何掃描配置,生成類,并匹配對應的整個流程已經很清楚了。 版本 spring 5.0.8.BUILD-SNAPSHOT aspectjweaver 1.8.13 如何掃描Advice 接上一回,講到了getAdvicesAndAdvisorsF...
摘要:基礎問題的的性能及原理之區別詳解備忘筆記深入理解流水線抽象關鍵字修飾符知識點總結必看篇中的關鍵字解析回調機制解讀抽象類與三大特征時間和時間戳的相互轉換為什么要使用內部類對象鎖和類鎖的區別,,優缺點及比較提高篇八詳解內部類單例模式和 Java基礎問題 String的+的性能及原理 java之yield(),sleep(),wait()區別詳解-備忘筆記 深入理解Java Stream流水...
摘要:基礎問題的的性能及原理之區別詳解備忘筆記深入理解流水線抽象關鍵字修飾符知識點總結必看篇中的關鍵字解析回調機制解讀抽象類與三大特征時間和時間戳的相互轉換為什么要使用內部類對象鎖和類鎖的區別,,優缺點及比較提高篇八詳解內部類單例模式和 Java基礎問題 String的+的性能及原理 java之yield(),sleep(),wait()區別詳解-備忘筆記 深入理解Java Stream流水...
閱讀 647·2021-11-25 09:43
閱讀 1915·2021-11-17 09:33
閱讀 830·2021-09-07 09:58
閱讀 2067·2021-08-16 10:52
閱讀 488·2019-08-30 15:52
閱讀 1729·2019-08-30 15:43
閱讀 992·2019-08-30 15:43
閱讀 2932·2019-08-29 16:41