CallableMethodReturnValueHandler Callable.class.isAssignableFrom(returnType.getParameterType()); DeferredResultMethodReturnValueHandler (DeferredResult.class.isAssignableFrom(type) || ListenableFuture.class.isAssignableFrom(type) || CompletionStage.class.isAssignableFrom(type)); AsyncTaskMethodReturnValueHandler WebAsyncTask.class.isAssignableFrom(returnType.getParameterType());