- 原始方法执行后执行,无论原始方法中是否出现异常,都将执行通知
- 主要用于现场清理,资源释放
语法
<aop:after method="执行方法" pointcut="切入表达式"/>
<aop:after method="执行方法" pointcut-ref="切入表达式id" />
参数 |
描述 |
method |
在通知类中设置当前通知类别对应的方法 |
pointcut |
设置当前通知对应的切入点表达式,不能同时使用pointcut-ref |
pointcut-ref |
设置当前通知对应的切入点id,不能同时使用pointcut |
示例
- application.xml
<aop:aspect ref="adviceId"> <!--直接配置切入点--> <aop:afterthrowing method="doAfter" pointcut="execution(* com.exi.service.LogAspectHandler.*.*(..))"/> </aop:aspect> |
<aop:pointcut id="pt" expression="execution(* com.exi.service.LogAspectHandler.*.*(..))"/>
<aop:aspect ref="adviceId">
<!--使用公共切入点-->
<aop:afterthrowing method="doAfter" pointcut-ref="pt"/>
</aop:aspect>
- LogAspectHandler.java
public class LogAspectHandler {
public void pointCut() {}
public void doAfter(JoinPoint joinPoint) {
log.info("==== doAfter 方法进入了====");
Signature signature = joinPoint.getSignature();
String method = signature.getName();
log.info("方法{}已经执行完", method);
}
}