Spring4笔记----AOP的返回通知和异常通知

返回通知:

无论连接点正常返回还是抛出异常,后置通知都会执行。如果只想在连接点返回的时候记录日志,应使用返回通知代替后置通知。

在返回通知中,只需要在@AfterReturning注解中添加returning属性,就可以访问连接点的返回值。

必须在通知方法的签名中添加一个同名参数,在运行时Spring AOP会通过这个参数传递给返回值。


在方法法正常结束后执行的代码

 返回通知是可以访问到方法的返回值的!

@AfterReturning(value="execution(* com..Spring4.AOP.*.*(..))",
			returning="result")
	public void afterReturning(JoinPoint joinPoint, Object result){
		String methodName = joinPoint.getSignature().getName();
		System.out.println("The method " + methodName + " ends with " + result);
	}


异常通知

只在连接点抛出异常时才执行异常通知

throwing 属性添加到 @AfterThrowing 注解中, 也可以访问连接点抛出的异常. Throwable 是所有错误和异常类的超类. 所以在异常通知方法可以捕获到任何错误和异常.

如果只对某种特殊的异常类型感兴趣, 可以将参数声明为其他异常的参数类型. 然后通知就只在抛出这个类型及其子类的异常时才被执行.


在目标方法出现异常时会执行的代码.
可以访问到异常对象; 且可以指定在出现特定异常时在执行通知代码

@AfterThrowing(value="execution(* com..Spring4.AOP.*.*(..))",
			throwing="e")
	public void afterThrowing(JoinPoint joinPoint, Exception e){
		String methodName = joinPoint.getSignature().getName();
		System.out.println("The method " + methodName + " occurs excetion:" + e);
	}


发布了121 篇原创文章 · 获赞 81 · 访问量 21万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章