同一个方法被多个Aspect类拦截

同一个方法被多个Aspect类拦截
优先级高的切面类里的增强处理的优先级总是比优先级低的切面类中的增强处理的优先级高。
在“进入”连接点时,最高优先级的增强处理将先被织入;
在“退出”连接点时,最高优先级的增强处理会最后被织入。
Spring提供了如下两种解决方案指定不同切面类里的增强处理的优先级:

让切面类实现org.springframework.core.Ordered接口:实现该接口的int getOrder()方法,该方法返回值越小,优先级越高
直接使用@Order注解来修饰一个切面类:使用这个注解时可以配置一个int类型的value属性,该属性值越小,优先级越高
同一个切面类里的两个相同类型的增强处理在同一个连接点被织入时,Spring AOP将以随机的顺序来织入这两个增强处理,没有办法指定它们的织入顺序。即使给这两个 advice 添加了 @Order 这个注解,也不行!

你可能感兴趣的:(同一个方法被多个Aspect类拦截)