// 定义一个切面
@Aspect
public class LogAspect
{
// 匹配com.owenapp.service.impl包下所有类的、
// 所有方法的执行作为切入点
@AfterReturning(returning="rvt"
, pointcut="execution(* com.owen.app.service.impl.*.*(..))")
// 声明rvt时指定的类型会限制目标方法必须返回指定类型的值或没有返回值
// 此处将rvt的类型声明为Object,意味着对目标方法的返回值不加限制
public void log(Object rvt)
{
System.out.println("获取目标方法返回值:" + rvt);
System.out.println("模拟记录日志功能...");
}
}
注意这是一个切面实现对已有函数的功能进行增强,因此returning="rvt"表示的是已有函数的返回值,这个返回值rvt对应着增强函数log(Object rvt)里的rvt,并且增强函数的形参类型也限制了已有函数的返回值类型,这是因为这个过程相当于将已有函数返回值赋给增强函数对应的形参变量.