一、簡介
spring最核心的兩個思想/功能是aop【面向切面】與ioc【控制反轉(zhuǎn)】。本篇文章主要介紹aop相關(guān)的點;
二、aop介紹
aop【面向切面】,AOP主要實現(xiàn)的目的是針對業(yè)務(wù)處理過程中的切面進(jìn)行提取,面對的處理過程中的某個步驟或階段,達(dá)到邏輯過程中各部分之間低耦合性的效果。
三、AOP名稱
- 切面(Aspect):關(guān)注點的模塊化,關(guān)注點可能會橫切多個對象。spring AOP中,切面可以使用基于模式或基于注解@Aspect注解方式實現(xiàn)
- 連接點(JoinPoint): 程序執(zhí)行過程中某個特定的點,spring AOP中,一個連接點總表示一個方法的執(zhí)行;
- 通知(Advice) :在切面的某個特定的連接點上執(zhí)行的動作,比如:around,before和after等。大部分AOP框架都是以攔截器做通知模型,并維護(hù)一個以連接點為中心的攔截器鏈;
- 切入點(Pointcut): 匹配連接點的斷言。通知和切入點表達(dá)式關(guān)聯(lián),并在滿足切入點的連接點上執(zhí)行。切入點表達(dá)式如何和連接帶你匹配是AOP的核心;
- 引入(Introduction): 用來給一個類型聲明額外的方法或?qū)傩?/li>
- 目標(biāo)對象(Target Object):被一個或多個切面所通知的對象
- AOP代理(aop proxy):Aop框架創(chuàng)建的對象,用來實現(xiàn)切面契約。在spring 中,Aop代理可以是JDK代理或CGLIB代理。如果對兩代理不了解可以查閱:http://www.itdecent.cn/p/fdd50ca9d130
- 織入(Weaving):把切面連接到其他應(yīng)用程序類型或?qū)ο笊?,并?chuàng)建一個被通知的對象