Spring aop 通知的使用

来源:互联网 发布:淘宝隐形降权查哪里看 编辑:程序博客网 时间:2024/05/16 19:14

Spring aop 支持5种通知:

 1. 前置通知

 2. 异常通知

 3. 返回通知

 4.后置通知

 5.环绕通知


这里不再赘述实现aop通知所用的代理模式,只是为了说明,在这5个通知中,只有环绕通知可以做到修改目标方法的返回值、目标方法的入参以及目标方法抛出的异常。

因为前4中通知都是spring使用代理模式实现的,对于程序员来说,只能获得相应的值,无法做到修改。而环绕通知是spring让程序员自己对目标方法进行代理,所以环绕通知才可以不仅获得目标方法的值,还可以修改他们。



@Around("execution(public * com.test.service.SomeService.*(..))")public Object around(ProceedingJoinPoint joinPoint){String methodName = joinPoint.getSignature().getName();Object result = null;try {Object[] objs = {"changed in around"};result = joinPoint.proceed(objs);System.out.println("-------------result in around  from target method-----------  : " + result.toString());} catch (Throwable e) {e.printStackTrace();throw new RuntimeException("around notification changed exception");}return result;}



0 0