aop注解模式的简单使用

aop注解模式

applicationContext.xml 开启aop注解代理功能

<!--注解模式实现aop切面 开启aop注解功能 开启aop代理功能-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Component(value = "LogAdvice")//普通javabean
@Aspect  //声明是一个切面类
public class LogAdvice {
    /*重命名切入点*/
        @Pointcut("execution(* com.xpc.service.*.*(..))")
    public void pc(){
        
    }
    
    /*
     * 日志切面类
     * 前置通知方法
     * */
    <!--@Before("execution(* com.xpc.service.*.*(..))")-->
    @Before("LogAdvice.pc()")
    public void before(){
        System.out.println("前置通知");
    }
    /*
     * 后置通知
     * */
    public void after(){
        System.out.println("后置通知");
    }
    /*
    * 异常通知
    * */
    @AfterThrowing("LogAdvice.pc()")
    public void excpetion(){
        System.out.println("异常通知");
    }
    /*
    * 环绕通知
    * */
    public Object round(ProceedingJoinPoint point) throws Throwable {
        //调用执行前
        System.out.println("环绕前通知");
        Object obj = point.proceed();//继续调用目标方法
        //调用方法之后执行
        System.out.println("环绕后通知");
       return obj;
    }
 @Before("execution(* com.xpc.service.*.*(..))") 
//前置通知切入点

猜你喜欢

转载自blog.csdn.net/Riding_ants/article/details/106623030
今日推荐