基于注解的aop实现

注解支持

<aop:aspectj-autoproxy/>

// 切面类
package org.xyz;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class AspectModule {
      // 在切面类中使用pointcut对切面方法进行修饰
      @Pointcut("execution(* com.xyz.myapp.service.*.*(..))") // expression 
      private void businessService() {}  // signature
      @Pointcut("execution(* com.tutorialspoint.Student.getName(..))") 
      private void getname() {}
      // 如果你已经在xml中配置了一个pointcut切点,则可以使用下面这些执行注解
      @Before("businessService()")
      public void doBeforeTask(){
         ...
      }
      @After("businessService()")
      public void doAfterTask(){
       ...
      }
      @AfterReturning(pointcut = "businessService()", returning="retVal")
       public void doAfterReturnningTask(Object retVal){
        // you can intercept retVal here.
      ...
      }
    @AfterThrowing(pointcut = "businessService()", throwing="ex")
    public void doAfterThrowingTask(Exception ex){
    // you can intercept thrown exception here.
    ...
    }
    @Around("businessService()")
    public void doAroundTask(){
     ...
    }
}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容