对于你们许多人来说,这可能是一个微不足道的问题,但我发誓我无法在其他任何地方找到答案:
假设我有一个类似这样的课程
@Interceptors(Interceptor1.class)
class myClass
{
@Interceptors({Interceptor2.class, Interceptors3.class})
public void myMethod() {...}
}
当myMethod被调用时,执行哪个拦截器以及按哪个顺序执行?
拦截器2,拦截器3 要么 拦截器1,拦截器2,拦截器3 要么 拦截器2,拦截器3,拦截器1?
提前致谢
答案 0 :(得分:0)
默认情况下,调用方法时拦截器的顺序为
外部拦截器
默认拦截器(如果存在)
类拦截器(如果存在)
方法拦截器(如果存在)
bean类上的拦截器方法(使用@AroundInvoke)
在每个组(默认,类,方法)中,拦截器的顺序是从@Interceptors注释中定义的从左到右,然后是XML拦截器。