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.

chevron-rightDispatcher Servlethashtag

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:

  1. Recebe a requisição – toda chamada feita ao servidor passa primeiro pelo DispatcherServlet.

  2. Encaminha para o Controller correto – com base na URL e nas configurações (annotations como @RequestMapping ou @GetMapping), ele decide qual controller deve atender.

  3. Executa a lógica do Controller – o método do controller processa a requisição, acessa serviços, dados etc.

  4. Seleciona a View – o DispatcherServlet pega o resultado e, através de um ViewResolver, decide qual página (HTML, JSP, Thymeleaf, JSON, etc.) será retornada.

  5. 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