AOP框架能處理程序執行中特定切入點(Pointcut),而不與具體某個類耦合。編程
下面是面向切面編程的一些術語:緩存
概念 | 描述 |
切面(Aspect) | 業務流程運行的某個特定步驟,即關注點,關注點可能橫切多個對象,因此經常也稱爲橫切關注點。 |
鏈接點(Joinpoint) | 程序執行過程當中明確的點,如方法的調用或異常的拋出。SpringAOP中鏈接點老是方法的調用。 |
加強處理(Advice) | AOP框架在特定的切入點執行的加強處理。處理有around,before和after等類型。 |
切入點(Pointcut) | 能夠插入加強處理的鏈接點。簡而言之,當某個鏈接點知足指定要求時,該鏈接點將被添加加強處理,該鏈接點也就變成了切入點。 |
引入 | 將方法或字段添加到被處理的類中。Spring容許引入新的接口到任何被處理的對象。例如你可使用一個引入,使任何對象實現isModified接口,以此來簡化緩存。 |
目標對象 | 被AOP框架進行加強處理的對象。若是AOP框架是經過運行時代理來實現的,那麼這個對象將是一個被代理的對象。 |
AOP代理 | AOP框架建立的對象,簡單地說,代理就是對目標對象的增強。SpringAOP中的代理既能夠是JDK動態代理,也能夠是cglib代理。前者爲實現接口的目標對象代理,後者爲不實現接口的目標對象代理。 |
織入(Weaving) | 將加強處理添加到目標對象中,並建立一個被加強的對象(AOP代理)的過程就是織入。織入有兩種實現方式:編譯時加強(AspectJ)和運行時加強(cglib)。SpringAOP在運行時完成織入。 |
AOP代理實際上是由AOP框架動態生成的一個對象,該對象可做爲目標對象使用。AOP代理包含了目標對象的所有方法,但AOP代理中的方法與目標對象的方法存在差別:AOP方法在特定切入點添加了加強處理,並回調了目標對象的方法。框架