Nesse tutorial iremos criar uma aplicação CRUD simples usando o Spring 3.1 e o MongoDB. Em particular, usaremos o Spring MVC para desenvolver a aplicação web e o SPring Data MongoDB para o repositório.
Índice do conteúdo
- Parte 1: Introdução e Especificações funcionais
- Parte 2: Configuração do MongoD
- Parte 3: Classes Java
- Parte 4: Configuração dos arquivos XML
- Parte 5: Arquivos HTML (com AJAX)
- Parte 6: Executando a aplicação
Dependências
- Spring core 3.1.0.RELEASE
- Spring Data MongoDB 1.0.0.RELEASE
- MongoDB (server) 2.0.2
- MongoDB (Java driver) 2.7.2
- See pom.xml for details
Github
Para acessar o código fonte do projeto, visite o repositório Github (clique aqui).
Especificações funcionais
Antes de começarmos, vamos definir as especificações de nossa aplicação, como segue:
- Uma página CRUD para gerenciar os usuários
- Uso do AJAX para evitar atualização da página
- Usuários possuem regras. Eles podem ser admin ou regular (que é o padrão)
- Qualquer um pode criar novos usuário e editar os existentes
- Quando estiverem editando um usuário, eles podem alterar apenas o primeiro nome, último nome e campos de regras
- Um nome de usuário deve ser único
Abaixo segue o diagrama de Caso de Uso:
Banco de dados
Se você for iniciante no MongoDB e possuir experiência com SQL, arranje algum tempo para ler o artigo SQL to Mongo Mapping Chart. É uma comparação entre o SQL e o MongoDB.
Temos duas coleções (tabelas em SQL): user e role. A coleção user contém informações pessoais de cada usuário, enquanto a coleção role contém os valores das regras para cada usuário onde o valor “1” representa um admin e o valor “2” representa um usuário regular.
Abaixo segue o diagrama de Classe:
Documento User
Abaixo segue a estrutura JSON para o documento User depois do Sprinf Data MongoDB ter criado a coleção:
{ "_id" : "" , "_class" : "org.krams.domain.User" "firstName" : "" "lastName" : "" "username" : "" "password" : "" , "role" : { "$ref" : "role" , "$id" : "" } }
Observe que a propriedade role é uma referência para o registro Role como indicado pela propriedade $ref: role.
Documento Role
Abaixo está a estrutura JSON do documento Role depois que o Spring Data MongoDB ter criado a coleção:
{ "_id" : "" "_class" : "org.krams.domain.Role" "role" : "" }
Capturas de telas
Vamos visualizar como a aplicação irá ficar após ser finalizada. Essa é uma boa maneira de esclarecer as especificações da aplicação.
O diagrama de Atividades:
Página de entrada
A página de entrada é a página principal que os usuário verão. Ela contém uma tabela contendo registros de usuários e quatro botões para adicionar, editar, deletar e recarregar dados. Todas as interações ocorrem nessa página.
Editando um registro existente
Quando o usuário clica no botão Edit, um formulário Edit Record aparecerá abaixo da tabela.
Quando o usuário submete o formulário, uma mensagem de sucesso ou falha é mostrada.
Quando a operação é bem sucedida, a atualização do registro deve ser refletida na tabela.
Criando um novo registro
Quando o usuário clica no botão New, um formulário Create New record aparecerá abaixo do tabela.
Quando o usuário submete o formulário, uma mensagem de sucesso ou falha deve aparecer.
Quando a operação é bem sucedida, o novo registro deve aparecer na tabela.
Apagando um registro
Quando o usuário clica no botão Delete, uma mensagem de sucesso ou falha deve aparecer.
Recarregando o registro
Quando o usuário clica no botão Reload, os dados da tabela serão recarregados.
Erros
Quando um usuário clica no botão Edit ou Delete sem selecionar um registro, uma mensagem “Select a record first!” deve ser mostrada.
No próximo artigo (parte 2)
No próximo artigo, veremos como configurar um servidor MongoDB no Windows e no Ubuntu.