当前位置: 165平板网 > 热点资讯 > 行业观察 > 正文

Spring AOP中定义切点(PointCut)和通知(Advice)(6)

http://www.com165.com 时间:2016-10-28 13:16来源:未知

  • @annotation表示具有某个标注的方法,比如@annotation(org.springframework.transaction.annotation.Transactional)表示被Transactional标注的方法

  • args 表示方法的参数属于一个特定的类

  • within 表示方法属于一个特定的类

  • target 表示方法所属的类

  • 它们对应的加了@的版本则表示对应的类具有某个标注。

  • 单独定义切点

      详细了解了定义切点之后,在回顾上一节中的代码:

      package com.tianmaying.aopdemo.aspect;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;@Aspect //1@Componentpublic class LogAspect { @Pointcut("execution(* com.tianmaying.aopdemo..*.bookFlight(..))") //2 private void logPointCut() { } @AfterReturning(pointcut = "logPointCut()", returning = "retVal") //3 public void logBookingStatus(boolean retVal) { //4 if (retVal) { System.out.println("booking flight succeeded!"); } else { System.out.println("booking flight failed!"); } }}

    【免责声明】本文仅代表作者个人观点,与165平板网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件内容有任何疑问或质疑,请联系本网将迅速给您回应并做处理。