基于注解的aop实现

2019-12-30  本文已影响0人  充满智慧的白痴

注解支持

<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(){
     ...
    }
}


上一篇 下一篇

猜你喜欢

热点阅读