用注解定义增强
在项目中添加spring AOP相关的jar文件;
使用注解定义前置增强和后置增强实现日志功能;
编写spring配置文件,织入注解定义的增强。
1.aop/UserLogger注释增强类
package aop;
import java.util.Arrays;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.AfterReturning;
@Aspect
public class UserLogger {
@Before("execution(* biz.impl.*.*(..))")
//JoinPoint jp:spring会自动注入该连接点的实例
public void before(JoinPoint jp){
System.out.println("注解前置增强");
System.out.println("调用的方法:"+jp.getSignature()+",传递参数:"+Arrays.toString(jp.getArgs()));
}
@AfterReturning(pointcut="execution(* biz.impl.*.*(..))",returning="returnResult")
//Object returnValue:与注解中的returnValue名字一致
public void afterReturning(JoinPoint jp,Object returnResult){
System.out.println("注解后置增强");
System.out.println("调用的方法:"+jp.getSignature()+",传递参数:"+Arrays.toString(jp.getArgs())+",返回参数:"+returnResult);
}
}