Bom dia a todos!
O novo fluxo
“Developer on the Spring Framework” começou, “de repente”, este curso se tornou muito popular entre os novos alunos e aqueles que já nos desaprenderam sobre Java e empresas “regulares”. Portanto, se for interessante, venha a nós para
lições abertas e, é claro, compartilhe materiais interessantes sobre o assunto.
Tradução do Tutorial do Spring Data MongoDB
Postado por Anand KumarVamos lá!
No mundo de hoje, é muito importante criar e executar o aplicativo o mais rápido possível. Além disso, o aplicativo deve ser fácil de desenvolver e manter.
O Spring é apenas uma estrutura que facilita a integração com muitas outras estruturas diferentes, o que simplifica o desenvolvimento de aplicativos usando o Spring. Uma dessas integrações é a integração do Spring com o MongoDB.
1. Introdução Nesta lição, discutiremos uma combinação da estrutura Spring java mais famosa e do MongoDB do sistema de gerenciamento de banco de dados NoSQL (DBMS) mais famoso. O MongoDB é um NoSQL DBMS orientado a documentos que armazena dados em um formato semelhante a JSON.
A integração do Spring Data e do MongoDB é fornecida pelo Spring para facilitar a interação de ambos e a conveniência dos desenvolvedores, eliminando a necessidade de escrever muitas consultas para inserir, atualizar e excluir.
A seguir, estão alguns dos recursos fornecidos pelo projeto Spring Data MongoDB:
- O Spring Data permite que você use a classe @Configuration e a configuração XML.
- A hierarquia de exceções do Data Access Spring é usada para converter a exceção.
- Mapeamento integrado entre POJOs Java e um documento MongoDB.
- A classe MongoTemplate, que simplifica o uso de operações comuns do MongoDB.
- Além do MongoTemplate, você pode usar as classes MongoReader e MongoWriter para renderização de baixo nível.
A melhor maneira de entender qualquer tecnologia é usá-la na prática, e é exatamente isso que vamos fazer agora.
Vamos criar um programa simples para aprender mais sobre o Spring Data MongoDB.
2. Tecnologias e ferramentasVejamos as tecnologias e ferramentas que usaremos para criar o programa.
- Liberação do Eclispe Oxygen.2 (4.7.2)
- Java - versão 9.0.4
- Gradle - 4.6
- Servidor MongoDB - 3.6
- MongoCompass - 3.6
- SpringDataMongoDB - 2.0.5-RELEASE
3. Estrutura do projetoA estrutura do nosso projeto terá a aparência mostrada abaixo.
Estrutura do projeto para o Spring Data MongoDBO projeto gradle terá a estrutura mostrada acima. No caso do pom.xml, a estrutura do projeto será um pouco diferente.
4. O programaComo parte deste programa, tentaremos concluir as tarefas abaixo.
- Salvando um objeto no MongoDB
- Atualizando um objeto no MongoDB
- Removendo um objeto do MongoDB
- Recuperando todos os objetos do MongoDB
Vamos agora analisar todos os componentes do programa. Primeiro, começaremos com as dependências e os arquivos jar necessários para o programa.
4.1 gradleUsamos o Gradle para compilar como parte do programa. O arquivo
build.gradle
será semelhante ao mostrado abaixo.
apply plugin: 'java' repositories { mavenCentral() } dependencies { compile group: 'org.springframework.data', name: 'spring-data-mongodb', version: '2.0.5.RELEASE' implementation 'com.google.guava:guava:23.0' testImplementation 'junit:junit:4.12' }
No arquivo
build.gradle
, a linha
apply plugin: 'java'
informa qual plug-in instalar. No nosso caso, este é um plugin Java.
A tag
repositories{}
relata o repositório do qual as dependências devem ser extraídas. Escolhemos o
mavenCentral
para
mavenCentral
arquivos jar dependentes. Também podemos usar o jcenter para acessar os arquivos jar dependentes correspondentes.
A tag
dependencies {}
é usada para fornecer os dados necessários sobre os arquivos jar que precisam ser extraídos para o projeto.
4.2 Configuração para MongoDBPara usar a configuração do MongoDB, precisamos implementar a classe
AbstractMongoConfiguration
. A classe
MongoConfig.java
será semelhante à mostrada abaixo. Aqui usamos anotações em vez de xml. Mas o XML também pode ser usado para configurar a configuração.
Implementação da classe MongoConfig.java
package com.tutorial.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import com.mongodb.MongoClient; @Configuration public class MongoConfig extends AbstractMongoConfiguration { @Override public String getDatabaseName() { return "local"; } @Override @Bean public MongoClient mongoClient() { return new MongoClient("127.0.0.1"); } }
@Configuration
usado para definir a classe
MongoConfig.java
como a classe de configuração.
@Bean
define o
MongoClient
.
4.3 Classe do modeloAgora considere a classe do modelo. Usamos
student.java
como uma classe de modelo que contém atributos para Student, como Nome e Idade. A
Student.java
modelo
Student.java
usada para mapear POJOs para a coleção MongoDB.
Classe do modelo do aluno
package com.tutorial.model; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "students") public class Student { public Student(String studentName, int studentAge) { this.studentName = studentName; this.studentAge = studentAge; } @Id private String id; String studentName; int studentAge; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getStudentAge() { return studentAge; } public void setStudentAge(int studentAge) { this.studentAge = studentAge; } @Override public String toString() { return String.format( "Student[id=%s, studentName='%s', studentAge="+studentAge+"]", id, studentName); } }
@Document
define um documento. A propriedade
collection
determina a coleção que será usada para corresponder à coleção. Todos os atributos mencionados como parte da coleção devem estar acessíveis na classe POJO.
@Id
define o identificador de coleção.
4.4 Operações CRUDPara executar operações CRUD (abreviação de criar, ler, atualizar, excluir), como salvar, atualizar, excluir e recuperar dados do MongoDB, usaremos o
MongoOperations
.
Agora, vejamos a classe
MongoDBPOperations.java
. Esta classe contém a implementação de todos os métodos de operações CRUD.
A classe MongoDBPOperations que será usada para executar operações CRUD
package com.tutorial; import java.util.List; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import com.tutorial.model.Student; public class MongoDBPOperations { public void saveStudent(MongoOperations mongoOperation, Student student) { mongoOperation.save(student); System.out.println("Student saved successfully");
A classe mais importante de um programa Java é a classe que contém o método
main
.
4.5 Classe de aplicaçãoA classe principal que contém o método principal é a classe
Application.java
. Usaremos essa classe para chamar métodos da classe
MongoDBPOperations
.
Classe de aplicativo para chamar métodos da classe MongoDBPOperations
package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) {
Vamos examinar passo a passo as operações que são executadas na classe
Application.java
:
- Criamos um
ApplicationContext
. Isso ocorre devido à necessidade de baixar a configuração. - Além disso, um objeto
MongoOperations
foi MongoOperations
para carregar o componente MongoTemplate
. - O objeto
MongoDBOperations
fornece acesso a métodos para executar várias operações do MongoOperation
. - Além disso, um objeto Student foi criado com o nome John e 15 anos.
- Chamamos o método
saveMethod
classe saveMethod
e passamos os parâmetros necessários para salvar o objeto no banco de dados. - Da mesma forma, chamamos os vários métodos
MongoDBOperations
um por um.
4.6 Iniciando o programaFinalmente, vamos agora executar o programa como um aplicativo Java. Clique com o botão direito do mouse em Application.java -> Executar como -> Aplicativo Java.
O resultado a seguir aparecerá no console.
Saída do console após iniciar o programaAgora vamos comentar o comando para excluir o objeto. O MongoDB armazenará dados com sucesso.
Além disso, vamos comentar a linha para excluir o objeto, como mostrado abaixo.
Aplicativo de classe após comentar os métodos de remoção
package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) {
Depois de fazer alterações no programa, vamos reiniciá-lo. O seguinte aparece no console.
Console quando a operação de exclusão é comentadaComo resultado do comentário sobre o comando delete, o MongoDB armazenará os dados e, portanto, será semelhante ao mostrado abaixo.
Saída do MongoDB após o comando save and update5. Faça o download do projeto EclipseVocê pode fazer o download do código-fonte inteiro para este exemplo
aqui.O FIM
Como sempre, estamos esperando perguntas e comentários aqui ou vamos a
Yuri para
uma aula aberta, onde você pode não apenas ouvir, mas também perguntar.