如果在其他线程中调用,则ClientRequestFilter会引发BeanCreationException

时间:2019-03-25 12:49:42

标签: java spring-boot jax-rs executorservice

我有一个Spring-boot应用程序A,它在另一个线程中调用另一个服务B。

在调用服务B之前调用MyHeaderFilter。

当ClientRequestFilter在不同的线程中被调用时,它不知道spring bean。

如何在不更改SpecialLogger的情况下访问SomeBean

@Component
@Provider
public class MyHeaderFilter implements ClientRequestFilter
{
    @Inject
    private SomeBean someBean;

    @Override
    public void filter(ClientRequestContext requestContext) throws 
    IOException {

        someBean.someMethod(); // Here I get BeanCreationException
    }
}


@Component
public class SpecialLogger
{
   @Inject
   private ExecutorService executorService;

   public void logPayload(String data){
       Future<Void> rt = executorService.submit( 
          /* Here it calls another service B */
          );
   }
}

我需要在不更改SpecialLogger的情况下访问MyHeaderFilter中的SomeBean

0 个答案:

没有答案