spring的aop配置,将通知织入目标对象

spring的aop配置,将通知织入目标对象_第1张图片

package cn.itcast.d_springaop;

import org.aspectj.lang.ProceedingJoinPoint;

//通知类

public class MyAdvice {

    //前置通知    

//        |-目标方法运行之前调用

    //后置通知(如果出现异常不会调用)

//        |-在目标方法运行之后调用

    //环绕通知

//        |-在目标方法之前和之后都调用

    //异常拦截通知

//        |-如果出现异常,就会调用

    //后置通知(无论是否出现 异常都会调用)

//        |-在目标方法运行之后调用

//前置通知

public void before(){

System.out.println("这是前置通知!!");

}

//后置通知

public void afterReturning(){

System.out.println("这是后置通知(如果出现异常不会调用)!!");

}

//环绕通知

public Object around(ProceedingJoinPoint pjp) throws Throwable {

System.out.println("这是环绕通知之前的部分!!");

Object proceed = pjp.proceed();//调用目标方法

System.out.println("这是环绕通知之后的部分!!");

return proceed;

}

//异常通知

public void afterException(){

System.out.println("出事啦!出现异常了!!");

}

//后置通知

public void after(){

System.out.println("这是后置通知(出现异常也会调用)!!");

}

}







spring的aop配置,将通知织入目标对象_第2张图片
spring的aop配置,将通知织入目标对象_第3张图片




package cn.itcast.service;

public classUserServiceImplimplements UserService {

publicvoidsave() {

System.out.println("保存用户!");

    }

publicvoiddelete() {

System.out.println("删除用户!");

    }

publicvoidupdate() {

System.out.println("更新用户!");

    }

publicvoidfind() {

System.out.println("查找用户!");

    }

}



package cn.itcast.service; //接口

public interface UserService {

void save();

void delete();

void update();

void find();

}



spring的aop配置,将通知织入目标对象_第4张图片

你可能感兴趣的:(spring的aop配置,将通知织入目标对象)