Spring MVC
Atualizado
Atualizado
O spring-webmvc é baseado na API do servlet do Java. Como característica, essa API é síncrona e bloqueante.
Uma outra coisa é container do servidor de aplicação. A do Spring MVC roda no Servlet Container (Tomcat), que por padrão é síncrono e bloqueante.
Essa imagem é um modelo de como o Spring MVC trata as requisições. ⬇️
Quando o Request#1 bater na Representation Layer (Controller), será criado uma Servlet thread#1.
Essa thread será enviada para a DB Layer (Repository) e ficará bloqueada (veja o blocked). Somente quando houver a resposta de volta, ela será desbloqueada (por isso ela é sincrona e bloqueante).
Somente depois da thread#1 ser respondida que a Request#2 será iniciada.