Multithreading Spring延迟结果&;在web筛选器中请求作用域bean(Oauth2ClientContext)
从我的控制器返回另一个线程填充的延迟结果: FooController.javaMultithreading Spring延迟结果&;在web筛选器中请求作用域bean(Oauth2ClientContext),multithreading,spring-mvc,asynchronous,spring-boot,spring-security-oauth2,Multithreading,Spring Mvc,Asynchronous,Spring Boot,Spring Security Oauth2,从我的控制器返回另一个线程填充的延迟结果: FooController.java @RequestMapping("/deferred") public DeferredResult<String> deferred() throws InterruptedException, ExecutionException{ DeferredResult<String> deferred = new DeferredResult<>(); pagePr
@RequestMapping("/deferred")
public DeferredResult<String> deferred() throws InterruptedException, ExecutionException{
DeferredResult<String> deferred = new DeferredResult<>();
pagePreparer.setResult(deferred);
return deferred;
}
查看我配置的异常:
@Bean
public RequestContextListener requestContextListener(){
return new RequestContextListener();
}
但是没有区别。如何解决这个问题?事实证明,您必须执行以下操作:
@Bean
public FilterRegistrationBean requestContextFilterRegistration(){
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(requestContextFilter());
filter.setOrder(0);
return filter;
}
@Bean
public RequestContextFilter requestContextFilter(){
return new RequestContextFilter();
}
@Bean
public RequestContextListener requestContextListener(){
return new RequestContextListener();
}
@Bean
public FilterRegistrationBean requestContextFilterRegistration(){
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(requestContextFilter());
filter.setOrder(0);
return filter;
}
@Bean
public RequestContextFilter requestContextFilter(){
return new RequestContextFilter();
}