天天看点

Spring 注解Aop通知类型及执行顺序

1、通知类型

  • @Before — 前置通知
  • @AfterReturning — 后置通知
  • @Around — 环绕通知(目标对象默认不执行,需要手动执行)
  • @After — 最终通知
  • @AfterThrowing — 异常抛出通知

2.注意要点

  • 异常通知和后置通知是互斥的,两者只能执行一个。
  • 在基于注解通知的配置中,正常的执行顺序是前置通知->最终通知->后置通知,这种执行顺序会导致一个问题

    就是在自定义事务中,先执行后置通知释放了资源(连接对象),然后在进行提交。这样事物的连接对象就不一致了,无法实现事物的控制。

  • 为了避免在注解Aop通知的执行顺序问题,最好采用环绕通知的方法。

继续阅读