EJB异步方法Interceptors:是否可以在调用者线程中执行拦截器方法

时间:2020-03-09 22:29:55

标签: java asynchronous ejb interceptor ejb-3.1

如果使用@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移至类级别,其行为也将相同。
感谢您的帮助

0 个答案:

没有答案