SpringAOP面向切面XML配置

1.命名空间引入

image.png

xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"

2.切面配置


image.png

aop:pointcut expression定义被切的方法
被切方法..代表任意参数
id定义这个被切方法的id,已便后面切

ref定义用来切的类,method定义那个方法来切
方法定义
public void doBefore(JoinPoint jp){
System.out.println("类名:"+jp.getTarget().getClass().getName());
System.out.println("方法名:"+jp.getSignature().getName());
System.out.println("开始添加学生:"+jp.getArgs()[0]);
}

public void doAfter(JoinPoint jp){
    System.out.println("类名:"+jp.getTarget().getClass().getName());
    System.out.println("方法名:"+jp.getSignature().getName());
    System.out.println("学生添加完成:"+jp.getArgs()[0]);
}

public Object doAround(ProceedingJoinPoint pjp) throws Throwable{
    System.out.println("添加学生前");
    Object retVal=pjp.proceed();
    System.out.println(retVal);
    System.out.println("添加学生后");
    return retVal;
}

public void doAfterReturning(JoinPoint jp){
    System.out.println("返回通知");
}

public void doAfterThrowing(JoinPoint jp,Throwable ex){
    System.out.println("异常通知");
    System.out.println("异常信息:"+ex.getMessage());
}

你可能感兴趣的:(SpringAOP面向切面XML配置)