Tudo o que você precisa saber sobre 'MVC'
- #Spring Web / Spring Framework
Spring MVC
1 - Overview Rápido (O que é !).
Spring Boot fornece ao desenvolvedor um tipo de arquitetura muito conhecido que é o: Model – View – Controler (MVC) e componentes que podem ser usados para construir aplicações web flexíveis e fracamente acopladas ou seja com classes, métodos independentes e escopo bem definido. Ele usa os recursos básicos do Spring , como (Inversão de Controle) IoC e ( injeção de dependência ) DI.
1.1 - Desconstruindo a sopa de letrinhas:
· O M é de Model : Ele é o responsável por encapsular os dados do aplicativo e , em geral são os bons e velhos POJOS (Planejamento dos velhos objetos java) ao invés do EJBs padrões e pesados do Java EE.
· A letra V é a View : Visualizar o que ? Simples se é uma aplicação Web vamos sempre trabalhar com Páginas Html ou seja a camada responsável por renderizar as páginas para o usuário final.
· O C de Controller é a camada responsável por processar as solicitações do usuários e construir um modelo apropriado e o enviar para View para renderização.
2 - Sequência de Funcionamento (Como Funciona!).
Lembre-se que não estamos inventando a roda então o Spring Web MVC é projetado em torno do DispatcherServlet.
Então quando usamos o nosso navegador (Chrome , Firefox , Edge , Opera ) eles somente interpreta HTML, JavaScript , CSS e este recurso está disponível em algum lugar então que o navegador faz um : RESQUEST e obtém uma RESPONSE , faz uma requisição e obtém uma resposta veja a figura a seguir :
· O DispatcherServlet trata todas as solicitações e respostas HTTP.
· Depois de receber um pedido HTTP, o DispatcherServlet consulta o HandlerMapping para chamar o Controlador apropriado .
· O Controlador recebe a solicitação, chama o método apropriado e constrói o modelo e retorna o nome da página de visualização para o DispatcherServlet .
· o DispatcherServlet então receberá a ajuda do ViewResolver para selecionar a página de visualização definida para a solicitação.
· Depois que a visualização é finalizada, o DispatcherServlet passa os dados do modelo para a visualização, que é finalmente renderizada no navegador.
· Existem diversas informações como servidor de aplicação para tratar as requisições e configurações de porta e qual usar normalmente o Spring gera o projeto com um TOMCAT embarcado e vários detalhes que ocorrem debaixo dos panos mais a ideia é uma noção de como funciona.
3 – Hello World ! Afinal de contas: (para que serve ?).
Spring Boot, em combinação com Spring Web MVC (também conhecido como Spring REST), torna mais fácil desenvolver serviços da Web RESTful. Uma das melhores e mais rápidas formas é o Spring MVC é uma ferramenta para desenvolver serviços da Web em Java. Não se preocupe, se você deseja aprender o framework Spring e o serviço Web REST completo comece pelo básico onde alguns recursos que procura estará disponível de forma clara e então entenderá sim ele é um meio de construir aplicações REST para web.
3.1 – Por onde começar :
Primeiro passo acessar o site Spring I/O também conhecido como Spring Initializr para então você selecionar o gerenciador de dependências, versão do Java e também as dependências que irá utilizar para construir sua aplicação em nosso caso somente SpringWeb (https://start.spring.io/) :
2 Dê um nome ao seu projeto e selecione a versão da JDK
1 Escolha as Dependências
3
É isso mesmo meu amigo só clicar em Generate e o seu projeto estará pronto para importar para IDE de sua preferência, no meu caso para exemplificar vou utilizar o Eclipse conforme imagem a seguir :
Após fazer o Download do projeto ele vêm compactado e você descompactar o mesmo e depois na sua Workspace ou em um diretório de fácil localização. Já no Eclipse o caminho para importar é : FILE / IMPORT / MAVEN/ EXISTING MAVEN PROJECT , navegue até o seu diretório selecione a pasta descompactada, automaticamente ele irá mostrar o arquivo POM.xml que é nosso DI lembra ? que falamos no início como o nosso projeto foi gerado com Maven a injeção de dependências é através do arquivo POM.xml , e por ele que vamos configurar DispatcherServlet em um primeiro momento quando importar observará uma série de erros mas quando configurar as dependências (VIDE IMAGEM ABAIXO) os erros irão desaparecer e então hora de por a mão na massa e escrever o código. Observe a imagem a seguir a configuração das dependências que vamos usar :
POM – Arquivo de configuração Maven
DI – Injeção de Dependência
3.2 – E agora ? Projeto configurado chegou momento de debugar e construir a aplicação:
Agora é o momento de entender o MVC na prática, neste exemplo que irei demonstrar eu construí 3 Classes : Candidato.class , CandidatoService.class , CandidatoController.class , basicamente meu objeto controller irá mapear através de Annotation os métodos que irão retornar JSON com as informações do candidato o seu nome, cidade e Skill (habilidade). Em aplicações MVC são as anotações que ensinam o JAVA qual o escopo de cada classe é o que ela deve fazer, separei essas classes em pacotes para seguir a convenção observe:
Aqui está minha classe Controller :
1 - Não se preocupe com os imports a IDE faz isso automaticamente para você.
2 - @RestController – È a anotação responsável por transformar a classe em um Controller
ou seja irá receber e enviar as requisições HTTP. Classe com os endpoints Rest.
3 - @RequestMapping – Lembra das requisições? Então este é o mapeamento da URL - /candidato essa anotação vai trazer o nosso candidato através desta classe , eu preciso dizer ao java qual classe deve responder a essa requisição no browser. Método endpoint Rest.
4 - @GetMapping - Anotação que transforma em um método endpoint que retorna o MODEL o objeto neste caso irei usar o nome do Candidato para trazer o objeto.
Aqui está as classes que contém as informações de fato eu tenho MODEL uma classe modelo e minha DTO Objeto de transferência de dados e um modelo que vai ser enviado ao endpoint observe que são classe simples que basicamente utiliza Core java puro , somente minha classe de transferência de dados que tem uma anotação Spring mais se comparado da controller quase nada observe :
4 Testando a aplicação :
Como eu havia comentado o Spring já fornece o projeto com servidor de aplicação embarcado(“dentro dele”) o que você precisa fazer antes de testar é subir o servidor de aplicação no nosso caso é um TOMCAT observar em qual porta ele vai ser escutado ou vai iniciar :
Servidor de pé na porta 8080 agora é hora de fazer a requisição e observar se vamos obter resposta ele deve trazer os dados de nosso candidato, lembra qual foi a URL que mapeamos ?
/candidato eu vou usar o POSTMAN (“se não sabe o que é da um google”) ferramenta excelente para e testes e desenvolvimento ou se estiver apressado pode joga o endereço em seu browser ok :
Como podem observar obtivemos Status 200 ok requisição atendida já temos os dados de no candidato com um formato JSON aplicação funcionando !.
Espero ter esclarecido um pouco como funciona MVC abs até a próxima !.
Dúvidas ou comentário só chamar !.