Start here. This is the direct spoken answer to practice first.
Overview
Servlet async support can release the initial container thread while keeping the response open, but the delegated work still needs an execution model.
A controller can return Callable, DeferredResult, WebAsyncTask, or supported future and reactive types. Spring starts Servlet asynchronous processing, lets the initial filter-servlet call return, and later dispatches the result back through MVC to complete the response. A Callable runs on a configured task executor, while DeferredResult is completed by another application event or thread. Releasing the request thread does not make blocking work disappear.