Aplicação Spring MVC com MongoDB
Neste artigo criaremos um aplicação simples utilizando Spring MVC juntamente com MongoDB.
Boa Leitura.
Antes de começarmos a criar nosso projeto, primeiramente tem que conhecer um pouco sobre o banco de dados mongodb e Mongo Shell. Sua instalação pode ser vista aqui Obtendo e Configurando o MongoDB em seu Ambiente.
Spring MVC é um framework Action Based que tem ganhado bastante espaço ultimamente no universo Java para criação de projeto Web, antes dele era Struts 1 que também é um framework Action Based.
O projeto vai ser bem simples, um crud utilizando mongodb com um relacionamento entre dois documentos.
Criando o Projeto
Com o Eclipse aberto, vá File -> New → Maven Project irá abrir a seguinte Janela :
clique em Next para ir para a seguinte tela :
clique em Next, na próxima deixe preenchida da seguinte forma e clique em Finish:
com o projeto criado,vá em src/main/webapp, nela apague a pasta WEB-INF. Depois clique com o botão direito do mouse e vá em Properties, navegue até a opção Targeted Runtimes, marque a opção, que no caso vamos utilizar o Tomcat, depois clique em Uninstall Facets… :
ao chegar nesta tela desmaque Dynamic Web Module , altere Java 1.5 para 1.8 e clique em Finish. Abra novamente a mesma tela e maque Dynamic Web Module e mude de 2.3 para 3.1 e clique em Next para configura a proxima tela e a configure como abaixo :
Clique em Finish e depois em OK.
Agora iremos configurar nosso pom.xml, com a seguinte configurações :
Na pasta WEB-INF , configure o web.xml na seguinte forma :
Ainda dentro de WEB-INF crie um xml com o nome spring-context.xml, com o seguinte conteúdo e também crie uma pasta chamada views:
Agora na pasta webapp crie uma pasta chamada recursos com as seguinte subpastas : css, js e imagens, dentro de cada uma delas seguinte arquivos :
- jquery-ui-1.9.2.custom.min.css
- calendar.gif
- datepicker-pt-BR.js
- jquery-3.1.0.min.js
- jquery-ui-1.9.2.custom.min.js
Depois clique em cima do projeto e de “Alt +F5” para fazer update do maven :
Clique em OK e finalizamos a parte de criação projeto, podemos da inicio a codificação de nossas classes .
Criando a Constantes.java
Está classe é bem simples, ela irá somente conter valores constantes, que não serão modificadas. Isso para evitar ter muitas hardCode espalhado por todo o código, assim esse classe irá centralizar tudo de maneira organizada.
Crie uma classe chamada Constantes no package br.com.danieldias.commons, com o seguinte conteúdo :
Criando as Entidades
Crie as classes Pessoa.java e Endereco.java no package br.com.danieldias.model , com o seguinte conteúdo :
A classe pessoa bem simples, apenas com uma anotação na dataNascimento para o Spring lidar com esse tipo.
Criando o Repositorio
Agora criaremos uma Inteface chamada MongoDAO e uma classe chamada PessoaDAO no package br.com.danieldias.persistencia, com os seguintes conteúdos:
A classe PessoaDAO é onde fica todas as operações de CRUD para o MongoDB, nada muito fora do comum, tudo muito simples e fácil compreensão. Repare que estamos usando a classe Constantes aqui no lugar de String para facilitar o entendimento e deixar o código mas limpo.
Criando os Controles
O primeiro controle que iremos criar ,será o que chama a pagina principal listando todos os dados do banco quando iniciar a aplicação.
Crie uma nova classe chamada IndexController no package br.com.danieldias.controller, com o seguinte conteúdo :
Ainda no mesmo package cria a classe PessoasControler com o seguinte conteúdo :
Está classe também tem um conteúdo bem simples, a única diferença são as novas anotações para Mapping que a partir do Spring 4.3.0 , podemos está utilizando essas anotações : @GetMapping, @PostMapping, que são a mesma coisa quando fazemos desta maneira : @RequestMapping(value = “alterar”, method = “RequestMethod.POST”)
Criando as Views
Agora daremos inicio a criação de 3 páginas para nossa aplicação que são : alterarPessoa.jsp, inserirPessoa.jsp e lista.jsp, que devem ser criada na pasta views que fica dentro de WEB-INF .
Iniciaremos pela a página lista.jsp, onde a mesma terá uma tabela onde os dados serão apresentados, 3 links um para chamar a paǵina alterarPessoa.jsp passando um parâmetro que é seu id e um que irá chamar no controle o deletar com parâmetro id e um para estarmos adicionando os dados no formulario inserirPessoa.jsp
A página fica da seguinte forma :
Algo importante nesta tela. Aqui os atributos passado devem SER o mesmo que estão no mongoDB, ou seja as colunas tem que ter os mesmo nome. A mesma coisa nesse techo : ${pessoas.jugs.get(0).nome}, aqui estou retornado o primeiro posição no array, se quisermos chamar outra posição fazemos assim : ${pessoas.jugs.get(1).lideres}.
A proxima tela é um formulario bem simples com o seguinte conteudo :
e última tela que contem um formulário já preenchido com os valores do banco que podem ser alterados :
Rodando a Aplicação
Com tudo pronto, podemos testar a nossa aplicação:
Primeiramente inicie o MongoDB através do prompt/terminal com o seguinte comando : mongod, como na imagem :
Depois rode a aplicação no tomcat , com o botão direito do mouse clique no seu projeto e vá em Run As -> Run on Server, ao inicia a aplicação a página principal será carregada com abaixo :
Ao clicar em Adicionar irá para a tela de cadastro :
Ao clicar em adicionar, a pagina irá redirecionar para a tela principal novamente com os dados carregados :
Ao clicar no link Alterar, vai carregar a pagina de alteração de dados e se clicar em Excluir vai apagar o dado e vai voltar para a pagina principal :
RoboMongo
Com os nossos dados Gravados, podemos ver como fica a sua estrutura no banco, ao invés de utilizar o mongo Shell para visualizar os dados , irei usar uma ferramente de administraçao para está lidando com varias operações referente ao MongoDB, essa ferramente se chama RoboMongo , instalação facil basta descompactar e executar .
Ao executar o RoboMongo irá aparecer a seguinte tela :
clique em Create , de um nome para a conexao e clique em OK :
depois de salvo, clique em Connect, que irar leva-lo a seguinte pagina,basta clicar na collection pessoas e ira carregar os dados armazenados :
Bem isso é tudo, aqui aprendemos a como fazer uma aplicação Spring MVC com MongoDB e de quebra conhecemos uma nova ferramenta para o mesmo. O projeto pode ser baixado no meu GitHub.