Sobes.tech
Junior

O que é Spring Web?

sobes.tech IA

Resposta da IA

Spring Web é uma parte do Spring Framework que fornece funcionalidades para criar aplicações web. Inclui os módulos Spring MVC e Spring WebFlux, que suportam respetivamente a API de servlets e a pilha reativa.

Componentes-chave do Spring Web:

  • Spring MVC: Módulo para criar aplicações web seguindo o padrão Modelo-Visão-Controlador. Fornece:
    • DispatcherServlet - controlador central que encaminha as requisições entrantes.
    • Anotações @Controller e @RestController para definir controladores.
    • Mecanismos de mapeamento de requisições (anotações @RequestMapping, @GetMapping, etc.).
    • Suporte para View Resolvers para renderizar vistas.
    • Mecanismos de validação de dados.
    • Suporte para serviços web RESTful.
  • Spring WebFlux: Módulo para criar aplicações web reactivas usando I/O não bloqueante. Suporta:
    • Fluxos de dados reativos (Project Reactor).
    • Endpoints funcionais (em vez de controladores anotados).
    • Diversos servidores web reativos (Netty, Undertow, Jetty).

Comparação entre Spring MVC e Spring WebFlux:

Característica Spring MVC Spring WebFlux
Pilhas I/O Bloqueante (Servlet API) Não bloqueante (Reatividade)
Arquitetura Thread-per-request Event loop
Capacidade de processamento Menor em cargas altas Maior em cargas altas
Complexidade Mais simples Mais complexo (requer compreensão de programação reativa)
Aplicação típica Aplicações web tradicionais Serviços reativos de alta carga

Assim, Spring Web fornece ferramentas poderosas para criar aplicações web tanto tradicionais como reativas em Java, oferecendo flexibilidade e alto desempenho.