Introdução
Este post apresenta de forma simples, como interarir com MongoDB, usando SpringData.
Pré-requisitos
Para efetuar os testes, é necessario estar com o MongoDB rodando. Veja como instalar e executar o MongoDB aqui.
Interface MongoRepository
O MongoRepository é implementado com muitas APIs para armazenar e recuperar dados. Podemos usar o MongoRepository com operações CRUD genéricas completas da interface CrudRepository, e métodos adicionais da interface PagingAndSortingRepository para paginação e ordenação. O MongoRepository também estende o QueryByExampleExecutor para permitir a execução da consulta por exemplo.
Criar projeto SpringBoot
Criar o projeto usando Spring Initializr ou STS (SpringSource Tool Suite)
Arquivo Maven e Dependências
O arquivo de configuração (pom.xml) deve ter a configuração do SpringBoot e dependência do spring-boot-starter-data-mongodb.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> </parent> <groupId>br.com.whs.springmongodb</groupId> <artifactId>spring-mongodb</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>spring-mongodb</name> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> </dependencies>
Classes do Projeto
Classe de Entidade
São as classes responsáveis pelo mapeamento da persistência no banco de dados.
Utilizam 2 anotações:
- @Document – identifica o objeto de domínio da persistência no MongoDB
- @Id – determina o Identificador do documento (neste caso da collection)
Classe Repository
As classes deve estender (extends) a classe MongoRepository.
Classe Service
Possuem função de fachada entre as classes Web e o Repository.
Classe Controller
Neste caso, utilizamos essas classes para atender as chamadas REST.
Classe Application
Esta é a classe responsável pelo funcionamento do SpringBoot. Como os valores de configuração foram mantidos, ele rodará sob o Tomcat (embedded) na porta 8080.
Rodando a aplicação
Pode rodar a aplicação de 2 formas:
- Rodando a classe SpringMongoDBApplication (Run / Run As / Java Application)
- Executando o comando $ mvn tomcat:run
Postman
Para rodar os testes, utilizamos o Postman, uma poderosa ferramenta para testar endpoints e APIs.
Adicionar User
Configurar o Postman, da seguinte forma:
- Method: POST
- URL: http://localhost:8080/user
- Body: raw
- Tipo: JSON (application/json)
- Exemplo:
{ "name": "lfchaim", "profile": [ { "name": "admin" }, { "name": "dev" } ], "age": 36, "email": "lfchaim@gmail.com" }
Listar User
A listagem, sem parâmetros, retornará todos os registros do banco (collection: user).
Configuração:
- Method: GET
- URL: http://localhost:8080/user
O projeto completo pode ser baixado no Github.