1. 获取参数
¤ JoinPoint 适用于前置、后置、返回后、抛出异常通知
@Before/@After/@AfterReturning/AfterThrowing("pt()")
public void insert(JoinPoint jp)
{
Object[] args = jp.getArgs();
}
¤ ProceedJoinPoint 适用于环绕通知
@Around("pt()")
public void insert(ProceedingJoinPoint pjp)
{
Object[] args = pjp.getArgs();
}
2. 获取返回值
¤ 返回后通知 注:如果参数中包含JoinPoint,那此参数必须放在第一个位置
@AfterReturning(value = "pt()", returning = "ret")
public void insert(JoinPoint jp, Object ret)
{
Object ret = pjp.proceed();
}
¤ 环绕通知
@Around("pt()")
public Object insert(ProceedingJoinPoint pjp) throws Throwable
{
Object ret = pjp.proceed();
return ret;
}
3. 获取异常
¤ 抛出异常后通知
@AfterThrowing(value = "pt()", throwing = "t")
public void insert(JoinPoint jp, Throwable t)
{
Object ret = pjp.proceed();
}
¤ 环绕通知
@Around("pt()")
public Object insert(ProceedingJoinPoint pjp)
{
Object ret = null;
try
{
ret = pjp.proceed();
}
catch(Throws t)
{
}
return ret;
}
浙公网安备 33010602011771号