O padrão de projeto MVC (Model-View-Controller) foi descrito pela primeira vez em 1979. A ideia surgiu com a necessidade de organizar uma aplicação, de forma que as responsabilidades dos componentes de um projeto fossem separadas umas das outras.
Nesta arquitetura, a camada de controle processa as requisições e respostas e faz a ligação com a camada de modelo, que contém as regras de negócio da aplicação, e a camada de visão, responsável pela interação com o usuário.
Entre as vantagens do padrão proposto, tem-se a possibilidade de uma manutenção mais barata do código e torna-se muito mais prático estender as diversas funcionalidades do sistema, quando necessário.
Não por acaso, o MVC começou a ser incorporado em tecnologias comuns e foi disponibilizado em diversos frameworks de desenvolvimento rapidamente.
Atualmente, existem dois tipos de implementações de frameworks MVC: os baseados em ações e os baseados em componentes.
A diferença entre eles se dá principalmente pela forma como o fluxo de execução das solicitações é manipulado: os baseados em ações delegam a responsabilidade do gerenciamento de uma requisição a um controlador, cujo principal objetivo é reunir as informações de um modelo e devolver a resposta para o usuário através de uma visão; já os baseados em componentes utilizam a própria visão como responsável por extrair as informações de um modelo – por intermédio de uma classe gerenciável do framework – e assim apresentar a resposta ao cliente.
O Spring MVC é um destes frameworks baseados em ações e, quando utilizamos uma biblioteca web deste tipo, geralmente algum pacote de interface rica baseada em JavaScript é adicionado ao projeto para gerar telas dinâmicas e com um visual mais moderno.
Na maioria dos casos, esta liberdade de escolha na construção da camada de visão torna possível migrar o front-end para outra plataforma de desenvolvimento quando necessário, o que representa uma grande vantagem para sistemas com tempo de vida longo.
Não obstante, este não é o único diferencial: os frameworks MVC fornecem suporte ao REST, um serviço cada vez mais necessário nas aplicações atuais.
Na primeira parte deste artigo, faremos uma análise do Spring MVC através da demonstração dos principais recursos presentes no framework. Para isso, iniciaremos a criação de uma pequena aplicação que simula o funcionamento de uma clínica médica utilizando o WildFly como servidor de aplicação e o PostgreSQL como banco de dados.
No decorrer deste estudo todo o código do sistema será detalhado e explicado minuciosamente, para que possamos compreender o funcionamento da API da biblioteca web e como ocorre sua comunicação com as páginas JSP que serão montadas usando o Apache Tiles e o Bootstrap.
O Spring MVC
O Spring MVC pertence ao Spring Framework e tem como principal proposta possibilitar uma maior produtividade no desenvolvimento de aplicações web corporativas utilizando a linguagem Java. Baseando-se no já comentado padrão de projeto MVC, ele consegue separar as principais fronteiras de uma aplicação web, fazendo com que nosso código fique bastante organizado.
Por se tratar de um framework leve e não intrusivo, ou seja, não requer que classes da aplicação tenham contato com as classes da biblioteca, e pelo fato de estar integrado ao Spring Framework, o Spring MVC tem à disposição serviços como injeção de dependências, gerenciamento de transações e de segurança, além da integração com frameworks de mapeamento objeto-relacional como o Hibernate.
O funcionamento básico do Spring MVC se dá através da classe DispatcherServlet, que é um Front Controller e estende HttpServlet. Ela tem como funções principais direcionar as requisições para outros controladores, tratá-las e repassar as respostas para o usuário.
Após o recebimento da solicitação HTTP, o Dispa ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.