如果使用@Asynchronous注释的方法具有拦截器,则@AroundInvoke方法将在将执行异步方法的同一线程中执行,是否有可能使拦截器方法的执行发生在使调用异步方法?
这是将数据从调用者线程传播到将执行异步方法的线程
下面是我用来测试的代码段:
@Stateless
public class ServiceA{
@Asynchronous
@Interceptors(ServiceAInterceptor.class)
public void m1(){ ... }
}
public class ServiceAInterceptor{
@AroundInvoke
public Object intercept(InvocationContext context) throws Exception {
...
return context.proceed();
}
}
@Stateless
public class ServiceB{
public void m2(){
serviceA.m1();
}
}
即使将@Interceptors移至类级别,其行为也将相同。
感谢您的帮助