Spring MVC
Definição
O Spring MVC é um módulo do Spring Framework que implementa o padrão MVC, cominando as vantagens de utilizar esse padrão de projeto com a robustez da família de tecnologias Spring.
O Spring implementa o MVC utilizando o componente Dispatcher Servlet que irá gerenciar as solicitações HTTP recebidas pelo servidor da aplicação. Ele atua como um controlador frontal (front controller) e é responsável por encaminhar as solicitações para o controlador adequado e, em seguida, retornar a resposta apropriada ao navegador do usuário.

Dispatcher Servlet
O DispatcherServlet é o coração do Spring MVC. Ele funciona como um Front Controller, ou seja, um ponto único de entrada para todas as requisições HTTP que chegam à aplicação web.
A lógica é a seguinte:
Recebe a requisição – toda chamada feita ao servidor passa primeiro pelo
DispatcherServlet.Encaminha para o Controller correto – com base na URL e nas configurações (annotations como
@RequestMappingou@GetMapping), ele decide qual controller deve atender.Executa a lógica do Controller – o método do controller processa a requisição, acessa serviços, dados etc.
Seleciona a View – o
DispatcherServletpega o resultado e, através de umViewResolver, decide qual página (HTML, JSP, Thymeleaf, JSON, etc.) será retornada.Retorna a resposta – monta a resposta final e devolve ao cliente.
Ou seja, ele faz o papel de roteador central, organizando o fluxo da requisição dentro da arquitetura do Spring MVC.
👉 Sem o DispatcherServlet, você teria que tratar manualmente o roteamento das URLs e a resolução das views, como acontecia em frameworks mais antigos ou em aplicações Java EE puras.
Vantagens
O Spring MVC oferece recursos poderosos, como a injeção de dependência, a validação de dados, a autenticação e autorização, entre outros recursos avançados. Por isso é amplamento utilizado em projetos com o Spring Boot, devido à sua escalabilidade, modularidade e facilidade de integração com outras tecnologias.
Além disso, possui uma comunidade ativa de desenvolvedores e uma documentação bastante abrangente.
Para utilização do Spring MVC em um projeto Spring Boot, faz-se necessário a utilização do spring-boot-starter-web

Com Spring MVC configurado em um projeto Spring Boot é possível criar aplicações WEB escaláveis e flexíveis, usando uma abordagem baseada em componentes.
Principais anotações
Controller
@Controller é uma notação utilizada na classe para criar um controlador (controller) que irá receber as requisições dos clientes (requests) e enviar as respostas (responses).
Request Mapping
@RequestMapping é uma anotação utilizada nos métodos que irão receber as requisições dos clientes.
Pode ser usada para mapear as solicitações HTTP de qualquer tipo (GET, POST, PUT, DELETE etc.)
Get Mapping
@GetMapping é uma anotação utilizada nos métodos que irão receber as requisições HTTP GET.
Post Mapping
@GPostMapping é uma anotação utilizada nos métodos que irão receber as requisições HTTP POST.
Model Attribute
O Model é uma interface do Spring MVC que represente o modelo de dados em um aplicativo da web.
O Model é um objeto que armazena dados no escopo de uma solicitação HTTP. É utilizado para compartilhar dados entre o controlador e a visualização, fornecendo uma maneira eficiente de passar dados dinâmicos para a visualização.
@ModelAttribute é uma anotação que vincula um objeto a um nome e o adiciona ao modelo para ser usado em uma visualização.
Request Param
@RequestParam é uma anotação utilizada nos métodos para mapear os parâmetros HTTP e argumentos dos métodos.
http://localhost:8080/listEmployee?id=900848893
Path Variable
@PathVariable é outra anotação utilizada nos métodos para recuperar dados da URL.
http://localhost:8080/listEmployee/900848893
Last updated