切面的优先级决定了切面中方法的运行先后顺序。

不同于bean的实例化,spring中bean的实例化是根据bean类中的顺序先后进行实例化的。

但是在切面中,默认情况下,spring会帮你决定先后顺序,但是不知道是按什么决定的,有可能是看spring的心情吧…

一、我写了两个切面,运行时机相同,那么哪个切面会先执行?

运行结果:

发现check这个切面的方法先执行了。

二、引入优先级注解@Order

  1. @Order(1)
  2. @Order(2)

数字越小,优先级越高。

运行结果:

可以看到这次是logging切面的方法先执行了。

三、总结

@Order这个注解有时候有点用,记录一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注