Guten Tag an alle!
Der brandneue Stream
"Developer on the Spring Framework" wurde "plötzlich
" gestartet. Dieser Kurs erwies sich sowohl bei neuen Studenten als auch bei denen, die bereits von uns in "normalem" Java und Enterprise verlernt haben, als sehr beliebt. Wenn es also interessant ist, kommen Sie zu uns, um
offenen Unterricht zu erhalten , und teilen Sie natürlich interessante Materialien zu diesem Thema.
Spring Data MongoDB Tutorial Übersetzung
Gepostet von Anand KumarLass uns gehen!
In der heutigen Welt ist es sehr wichtig, die Anwendung so schnell wie möglich zu erstellen und auszuführen. Außerdem sollte die Anwendung leicht zu entwickeln und zu warten sein.
Spring ist ein solches Framework, das eine einfache Integration in viele andere Frameworks ermöglicht und die Anwendungsentwicklung mit Spring vereinfacht. Eine solche Integration ist die Integration von Spring in MongoDB.
1. Einleitung In dieser Lektion werden wir eine Kombination aus dem bekanntesten Spring Java Framework und dem bekanntesten NoSQL Database Management System (DBMS) MongoDB diskutieren. MongoDB ist ein dokumentorientiertes NoSQL-DBMS, das Daten in einem JSON-ähnlichen Format speichert.
Die Integration von Spring Data und MongoDB wird von Spring bereitgestellt, um die Interaktion zwischen beiden und den Komfort für Entwickler zu erleichtern, sodass nicht mehr viele Abfragen zum Einfügen, Aktualisieren und Löschen geschrieben werden müssen.
Im Folgenden sind einige der Funktionen aufgeführt, die vom Spring Data MongoDB-Projekt bereitgestellt werden:
- Mit Spring Data können Sie sowohl die @ Configuration-Klasse als auch die XML-Konfiguration verwenden.
- Die Data Access Spring-Ausnahmehierarchie wird zum Übersetzen der Ausnahme verwendet.
- Integrierte Zuordnung zwischen Java POJOs und einem MongoDB-Dokument.
- Die MongoTemplate-Klasse, die die Verwendung gängiger MongoDB-Operationen vereinfacht.
- Zusätzlich zu MongoTemplate können Sie die Klassen MongoReader und MongoWriter für das Rendern auf niedriger Ebene verwenden.
Der beste Weg, eine Technologie zu verstehen, besteht darin, sie in der Praxis einzusetzen, und genau das werden wir jetzt tun.
Lassen Sie uns ein einfaches Programm erstellen, um mehr über Spring Data MongoDB zu erfahren.
2. Technologien und WerkzeugeSchauen wir uns die Technologien und Tools an, mit denen wir das Programm erstellen.
- Eclispe Oxygen.2 Release (4.7.2)
- Java - Version 9.0.4
- Gradle - 4.6
- MongoDB-Server - 3.6
- MongoCompass - 3.6
- SpringDataMongoDB - 2.0.5-RELEASE
3. ProjektstrukturDie Struktur unseres Projekts sieht wie folgt aus.
Projektstruktur für Spring Data MongoDBDas Gradle-Projekt hat die oben gezeigte Struktur. Im Fall von pom.xml unterscheidet sich die Struktur des Projekts geringfügig.
4. Das ProgrammIm Rahmen dieses Programms werden wir versuchen, die folgenden Aufgaben auszuführen.
- Speichern eines Objekts in MongoDB
- Aktualisieren eines Objekts in MongoDB
- Entfernen eines Objekts aus MongoDB
- Alle Objekte aus MongoDB abrufen
Lassen Sie uns nun alle Komponenten des Programms analysieren. Zunächst beginnen wir mit den Abhängigkeiten und JAR-Dateien, die für das Programm benötigt werden.
4,1 GradleWir verwenden Gradle, um als Teil des Programms zu erstellen. Die Datei
build.gradle
sieht wie folgt aus.
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' }
In der
build.gradle
Datei
build.gradle
gibt das
apply plugin: 'java'
zum
build.gradle
der Zeile an
apply plugin: 'java'
, welches Plug-in installiert werden soll. In unserem Fall ist dies ein Java-Plugin.
Das Tag
repositories{}
das Repository an, aus dem Abhängigkeiten abgerufen werden sollen. Wir haben
mavenCentral
, um abhängige JAR-Dateien
mavenCentral
. Wir können auch jcenter verwenden, um die entsprechenden abhängigen JAR-Dateien aufzurufen.
Das Tag
dependencies {}
wird verwendet, um die erforderlichen Daten zu JAR-Dateien bereitzustellen, die für das Projekt abgerufen werden müssen.
4.2 Konfiguration für MongoDBUm die MongoDB-Konfiguration zu verwenden, müssen wir die
AbstractMongoConfiguration
Klasse implementieren. Die Klasse
MongoConfig.java
sieht wie folgt aus. Hier verwenden wir Anmerkungen anstelle von XML. XML kann aber auch zum Konfigurieren der Konfiguration verwendet werden.
Implementierung der MongoConfig.java-Klasse
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
verwendet, um die Klasse
MongoConfig.java
als Konfigurationsklasse zu definieren.
@Bean
definiert die
MongoClient
.
4.3 ModellklasseBetrachten Sie nun die Klasse des Modells. Wir verwenden
student.java
als Modellklasse, die Attribute für Student wie Name und Alter enthält. Die
Student.java
Modellklasse
Student.java
verwendet, um POJOs der MongoDB-Auflistung zuzuordnen.
Student Model Class
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
definiert ein Dokument. Die
collection
bestimmt die Sammlung, die zur Übereinstimmung mit der Sammlung verwendet wird. Auf alle Attribute, die als Teil der Sammlung bezeichnet werden, muss in der POJO-Klasse zugegriffen werden können.
@Id
definiert die Sammlungskennung.
4.4 CRUD-OperationenUm CRUD-Operationen (kurz für Erstellen, Lesen, Aktualisieren, Löschen) auszuführen, z. B. das Speichern, Aktualisieren, Löschen und Abrufen von Daten aus MongoDB, verwenden wir
MongoOperations
.
Schauen wir uns nun die Klasse
MongoDBPOperations.java
an. Diese Klasse enthält die Implementierung aller Methoden von CRUD-Operationen.
Die MongoDBPOperations-Klasse, die zum Ausführen von CRUD-Operationen verwendet wird
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");
Die wichtigste Klasse eines Java-Programms ist die Klasse, die die
main
enthält.
4.5 AnwendungsklasseDie Hauptklasse, die die Hauptmethode enthält, ist die
Application.java
Klasse. Wir werden diese Klasse verwenden, um Methoden aus der
MongoDBPOperations
Klasse
MongoDBPOperations
.
Anwendungsklasse zum Aufrufen von Methoden der MongoDBPOperations-Klasse
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) {
Schauen wir uns Schritt für Schritt die Vorgänge an, die in der
Application.java
Klasse ausgeführt werden:
- Wir erstellen einen
ApplicationContext
. Dies liegt an der Notwendigkeit, die Konfiguration herunterzuladen. - Außerdem wurde ein
MongoOperations
Objekt MongoOperations
, um die MongoTemplate
Komponente zu laden. - Das
MongoDBOperations
Objekt bietet Zugriff auf Methoden zum Ausführen verschiedener MongoOperation
Operationen. - Außerdem wurde ein Schülerobjekt mit dem Namen John und Alter 15 erstellt.
- Wir rufen die
saveMethod
Methode der saveMethod
Klasse auf und übergeben die erforderlichen Parameter, um das Objekt in der Datenbank zu speichern. - Auf die gleiche Weise rufen wir die verschiedenen
MongoDBOperations
Methoden nacheinander auf.
4.6 Programm startenLassen Sie uns das Programm nun als Java-Anwendung ausführen. Klicken Sie mit der rechten Maustaste auf Application.java -> Ausführen als -> Java-Anwendung.
Das folgende Ergebnis wird in der Konsole angezeigt.
Konsolenausgabe nach dem Starten des ProgrammsLassen Sie uns nun den Befehl zum Löschen des Objekts auskommentieren. MongoDB speichert erfolgreich Daten.
Lassen Sie uns auch die Zeile auskommentieren, um das Objekt zu löschen, wie unten gezeigt.
Klassenanwendung nach Kommentierung der Entfernungsmethoden
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) {
Nachdem Sie Änderungen am Programm vorgenommen haben, starten Sie es neu. Folgendes wird in der Konsole angezeigt.
Konsole, wenn der Löschvorgang auskommentiert istAls Ergebnis des Kommentierens des Löschbefehls speichert MongoDB die Daten und sieht daher wie unten gezeigt aus.
MongoDB-Ausgabe nach dem Befehl zum Speichern und Aktualisieren5. Laden Sie das Eclipse-Projekt herunterSie können den gesamten Quellcode für dieses Beispiel
hier herunterladen
.DAS ENDE
Wie immer warten wir hier auf Fragen und Kommentare oder gehen zu
Yuri für
eine offene Lektion, in der Sie nicht nur zuhören, sondern auch herumfragen können.