Spring AOP中pointcut expression表達(dá)式解析 及匹配多個(gè)條件

Spring AOP中pointcut expression表達(dá)式解析 及匹配多個(gè)條件

任意公共方法的執(zhí)行:
  execution(public * (..))
任何一個(gè)以“set”開始的方法的執(zhí)行:
  execution(
set(..))
AccountService 接口的任意方法的執(zhí)行:
  execution(
com.xyz.service.AccountService.(..))
定義在service包里的任意方法的執(zhí)行:
  execution(
com.xyz.service..(..))
定義在service包和所有子包里的任意類的任意方法的執(zhí)行:
  execution(* com.xyz.service...(..))
定義在pointcutexp包和所有子包里的JoinPointObjP2類的任意方法的執(zhí)行:
  execution(* com.test.spring.aop.pointcutexp..JoinPointObjP2.*(..))")
在多個(gè)表達(dá)式之間使用 ||,or表示 或,使用 &&,and表示 與,!表示 非.例如:

@Pointcut("@within(org.springframework.stereotype.Controller) || @within(org.springframework.web.bind.annotation.RestController)")

execution 用于匹配方法執(zhí)行的連接點(diǎn);
@within :使用 “@within(注解類型)” 匹配所以持有指定注解類型內(nèi)的方法;注解類型也必須是全限定類型名;
@annotation :使用 “@annotation(注解類型)” 匹配當(dāng)前執(zhí)行方法持有指定注解的方法;注解類型也必須是全限定類型名;
@args 任何一個(gè)只接受一個(gè)參數(shù)的方法,且方法運(yùn)行時(shí)傳入的參數(shù)持有注解動(dòng)態(tài)切入點(diǎn),類似于 arg 指示符;
@target 任何目標(biāo)對(duì)象持有 Secure 注解的類方法;必須是在目標(biāo)對(duì)象上聲明這個(gè)注解,在接口上聲明的對(duì)它不起作用
@args :使用 “@args( 注解列表 )” 匹配當(dāng)前執(zhí)行的方法傳入的參數(shù)持有指定注解的執(zhí)行;注解類型也必須是全限定類型名;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • Via http://jinnianshilongnian.iteye.com/blog/1415606 http...
    xiaobinZh閱讀 1,683評(píng)論 0 52
  • Spring AOP支持的AspectJ切入點(diǎn)指示符 Spring AOP支持的AspectJ切入點(diǎn)指示符如下: ...
    幽暗金閱讀 3,298評(píng)論 0 2
  • 不知道從什么時(shí)候開始 再也遇不到看一眼就心花怒放的人 甚至很難去喜歡上一個(gè)人 仿佛喜歡變成了適合這兩個(gè)字 條條框框...
    白羊座rabbit閱讀 312評(píng)論 0 0
  • 臘梅迎新一樹黃,游人賞景不畏涼。 竹柳隔岸遙相望,檐下人家為誰忙?
    張紀(jì)敏閱讀 211評(píng)論 0 0

友情鏈接更多精彩內(nèi)容