Cómo Springmvc admite solicitudes asincrónicas en servlet 3.0
Spring MVC 3.2 M1 introducirá soporte para el procesamiento de solicitudes asincrónicas basado en la especificación Servlet 3.0. Aunque esta versión aún no está publicada, puedes ver las mejoras incluidas aquí.
Breve vista previa:
Los métodos del controlador se pueden procesar de forma asincrónica devolviendo Callable:
@RequestMapping(method=RequestMethod.POST)
public Callablelt; ProcessUpload (archivo MultipartFile final) {
return new Callablelt () {
public Object call() lanza una excepción {
// ...
Devuelve "algunaVista"
}
}
}
O el método del controlador devuelve un DeferredResult (nuevo en Spring 3.2 M1) para completar el procesamiento
@RequestMapping("/ quotes")
@ResponseBody
public DeferredResult quotes() {
DeferredResult deferredResult = new DeferredResult();
// Agrega deferredResult a la cola o mapa...
return deferredResult
p>}
// En otros hilos...
// Establece el valor de retorno en deferredResult
deferredResult.set(data);
// En otros hilos...