Buen dia a todos!
La nueva transmisión
"Developer on the Spring Framework" comenzó, "de repente", este curso resultó ser muy popular entre los nuevos estudiantes y aquellos que ya nos han desaprendido en Java "regular" y empresarial. Entonces, si es interesante, entonces ven a nuestras
lecciones abiertas y, por supuesto, comparte materiales interesantes sobre el tema.
Traducción del tutorial de Spring Data MongoDB
Publicado por Anand KumarVamos!
En el mundo de hoy, es muy importante crear y ejecutar la aplicación lo antes posible. Además, la aplicación debe ser fácil de desarrollar y de mantener.
Spring es simplemente un marco de trabajo que proporciona una fácil integración con muchos otros marcos diferentes, lo que simplifica el desarrollo de aplicaciones usando Spring. Una de esas integraciones es la integración de Spring con MongoDB.
1. Introducción En esta lección, analizaremos una combinación del marco Spring Java más famoso y el sistema de gestión de bases de datos NoSQL (DBMS) más famoso MongoDB. MongoDB es un DBMS NoSQL orientado a documentos que almacena datos en un formato similar a JSON.
Spring proporciona la integración de Spring Data y MongoDB para facilitar la interacción de ambos y la conveniencia de los desarrolladores, eliminando la necesidad de escribir muchas consultas para insertar, actualizar y eliminar.
Las siguientes son algunas de las características proporcionadas por el proyecto Spring Data MongoDB:
- Spring Data le permite usar tanto la clase @Configuration como la configuración XML.
- La jerarquía de excepciones de Data Access Spring se utiliza para traducir la excepción.
- Mapeo integrado entre POJOs de Java y un documento MongoDB.
- La clase MongoTemplate, que simplifica el uso de operaciones comunes de MongoDB.
- Además de MongoTemplate, puede usar las clases MongoReader y MongoWriter para la representación de bajo nivel.
La mejor manera de entender cualquier tecnología es usarla en la práctica, y eso es exactamente lo que vamos a hacer ahora.
Creemos un programa simple para aprender más sobre Spring Data MongoDB.
2. Tecnologías y herramientas.Veamos las tecnologías y herramientas que usaremos para crear el programa.
- Lanzamiento de Eclispe Oxygen.2 (4.7.2)
- Java - versión 9.0.4
- Gradle - 4.6
- Servidor MongoDB - 3.6
- MongoCompass - 3.6
- SpringDataMongoDB - 2.0.5-RELEASE
3. Estructura del proyecto.La estructura de nuestro proyecto se verá como se muestra a continuación.
Estructura del proyecto para Spring Data MongoDBEl proyecto gradle tendrá la estructura que se muestra arriba. En el caso de pom.xml, la estructura del proyecto será ligeramente diferente.
4. El programaComo parte de este programa, intentaremos completar las tareas a continuación.
- Guardar un objeto en MongoDB
- Actualización de un objeto en MongoDB
- Eliminar un objeto de MongoDB
- Recuperando todos los objetos de MongoDB
Analicemos ahora todos los componentes del programa. En primer lugar, comenzaremos con las dependencias y los archivos jar necesarios para el programa.
4.1 gradleUsamos Gradle para construir como parte del programa. El archivo
build.gradle
se verá como el que se muestra a continuación.
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' }
En el archivo
build.gradle
, la línea
apply plugin: 'java'
le dice qué complemento instalar. En nuestro caso, este es un complemento de Java.
La etiqueta
repositories{}
informa el repositorio desde el que se deben extraer las dependencias. Elegimos
mavenCentral
para extraer archivos jar dependientes. También podemos usar jcenter para extraer los archivos jar dependientes correspondientes.
La etiqueta de
dependencies {}
se utiliza para proporcionar los datos necesarios sobre los archivos jar que deben extraerse para el proyecto.
4.2 Configuración para MongoDBPara usar la configuración de MongoDB, necesitamos implementar la clase
AbstractMongoConfiguration
. La clase
MongoConfig.java
se verá como la que se muestra a continuación. Aquí usamos anotaciones en lugar de xml. Pero XML también se puede usar para configurar la configuración.
Implementación de la clase 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
utiliza para definir la clase
MongoConfig.java
como la clase de configuración.
@Bean
define el
MongoClient
.
4.3 Clase de modeloAhora considere la clase del modelo. Usamos
student.java
como clase de modelo que contiene atributos para Student, como Nombre y Edad. La
Student.java
modelo
Student.java
usa para asignar POJO a la colección MongoDB.
Clase modelo de estudiante
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 un documento. La propiedad de
collection
determina la colección que se utilizará para coincidir con la colección. Todos los atributos a los que se hace referencia como parte de la colección deben estar accesibles en la clase POJO.
@Id
define el identificador de la colección.
4.4 Operaciones CRUDPara realizar operaciones CRUD (abreviatura de crear, leer, actualizar, eliminar), como guardar, actualizar, eliminar y recuperar datos de MongoDB, utilizaremos
MongoOperations
.
Ahora veamos la clase
MongoDBPOperations.java
. Esta clase contiene la implementación de todos los métodos de operaciones CRUD.
La clase MongoDBPOperations que se usará para realizar operaciones 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");
La clase más importante de un programa Java es la clase que contiene el método
main
.
4.5 Clase de aplicaciónLa clase principal que contiene el método principal es la clase
Application.java
. Usaremos esta clase para llamar a métodos de la clase
MongoDBPOperations
.
Clase de aplicación para llamar a métodos de la clase 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) {
Veamos paso a paso las operaciones que se realizan en la clase
Application.java
:
- Creamos un
ApplicationContext
. Esto se debe a la necesidad de descargar la configuración. - Además, se
MongoOperations
un objeto MongoOperations
para cargar el componente MongoTemplate
. - El objeto
MongoDBOperations
proporciona acceso a métodos para realizar varias operaciones de MongoOperation
. - Además, se creó un objeto Estudiante con el nombre de John y 15 años.
- Llamamos al método
saveMethod
de la clase saveMethod
y pasamos los parámetros necesarios para guardar el objeto en la base de datos. - Del mismo modo, llamamos a los distintos métodos de
MongoDBOperations
uno por uno.
4.6 Inicio del programaFinalmente, ahora ejecutemos el programa como una aplicación Java. Haga clic derecho en Application.java -> Ejecutar como -> Aplicación Java.
El siguiente resultado aparecerá en la consola.
Salida de la consola después de iniciar el programaAhora comentemos el comando para eliminar el objeto. MongoDB almacenará con éxito los datos.
Además, comentemos la línea para eliminar el objeto, como se muestra a continuación.
Aplicación de clase después de comentar los métodos de eliminación
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) {
Después de realizar cambios en el programa, reiniciémoslo. Lo siguiente aparece en la consola.
Consola cuando la operación de eliminación está comentadaComo resultado de comentar sobre el comando eliminar, MongoDB almacenará los datos y, por lo tanto, se verá como el que se muestra a continuación.
Salida de MongoDB después del comando guardar y actualizar5. Descargue el proyecto EclipsePuede descargar el código fuente completo para este ejemplo
aquí.El fin
Como siempre, estamos esperando preguntas y comentarios aquí o vamos a
Yuri para
una lección abierta donde no solo puedes escuchar, sino también preguntar.