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.