-
環(huán)繞通知
?這種Advisor方式,在真實的業(yè)務(wù)場景中,如果需要對于某個方法統(tǒng)計執(zhí)行次數(shù),或者在嘗試執(zhí)行3次失敗后就不會再嘗試(例如,獲取prpo的接口信息時可以使用這個)
查看全部 -
Advisors
advisor 就像一個小的自包含的方面,只有一個advice
切面自身通過一個bean表示,并且必須實現(xiàn)某個advice接口,同事,advisor也可以很好的額利用AspectJ的切入點表達式
Spring通過配置文件中<aop:advisor>元素支持advisor, 實際使用中,大多數(shù)情況下他會和transactional advice配合使用
為了定義一個advisor的優(yōu)先級以便讓advice可以有序,可以使用order屬性來定義advisor的順序
查看全部 -
Aspect instantiation models
schema-defined aspects只支持singleton model
很重要
查看全部 -
<aop:declare-parents types-matching="com.mooc.aop.schema.advice.biz.*(+)"
implement-interface="com.mooc.aop.schema.advice.Fit"
default-impl="com.mooc.aop.schema.advice.FitImpl"
>
代碼調(diào)用:
Fit fit = (Fit)super.getBean("aspecctBiz");(強制轉(zhuǎn)換成接口實現(xiàn)類中的默認)
fit.filter();
查看全部 -
Introductions
簡介允許一個切面聲明一個實現(xiàn)指定接口的通知對象,并且提供了一個接口實現(xiàn)類來代表這些對象
由<aop:aspect>中的<aop:declare-parents>元素聲明該元素用于聲明所匹配的類型擁有一個新的parent(因此得名)
查看全部 -
Advice parameters XML配置
查看全部 -
Advice parameters
查看全部 -
Around advice?
通知方法的第一個參數(shù)必須是ProceedingJoinPoint類型
查看全部 -
After(finally)advice
查看全部 -
After throwing advice
使用throwing屬性來指定可被傳遞的異常的參數(shù)名稱
查看全部 -
After returning advice
查看全部 -
Before Advice
查看全部 -
所有以結(jié)尾的類的方法執(zhí)行前都需要先執(zhí)行MoocAspect類中的before方法
查看全部 -
pointcut
within(com.xyz.service.*)(only in Spring AOP)
within(com.xyz.service..*)(only in Spring AOP)
within 用于匹配指定類型內(nèi)的方法執(zhí)行
this(com.xyz.service.AccountService)(only in Spring AOP)
this 用于匹配當前AOP代理對象類型的執(zhí)行方法
查看全部 -
pointcut
execution(public * *(..)) 切入點為執(zhí)行所有public方法時
execution(*set*(..)) 切入點為執(zhí)行所有set開始的方法時
execution(*com.xyz.service.AccountService.*(..)) 切入點為執(zhí)行AccountService類中的所有方法時
execution(*com.xyz.service..(..))切入點為執(zhí)行com.xyz.service包下的所有方法時
execution(*com.xyz.service...(..))切入點為執(zhí)行com.xyz.service包及其子包下的所有方法時
查看全部
舉報