Mit dem Spring Data Spanner-Modul können Sie Spanner in beliebigen Java-Anwendungen verwenden die mit der Spring Framework.
Wie alle Spring Data-Module Spring Data Spanner bietet ein Spring-basiertes Programmiermodell, Die Konsistenzgarantien und Skalierbarkeit von Spanner werden beibehalten. Das ähneln Spring Data JPA und Hibernate ORM mit Anmerkungen, die für Spanner. Weitere Informationen zur Verwendung Spring Data JPA mit Spanner, siehe Binden Sie Spanner in Spring Data JPA (GoogleSQL-Dialekt) ein.
Wenn Sie bereits mit Spring vertraut sind, kann Spring Data Spanner die Arbeit mit Spanner in Ihrer Anwendung und weniger Code schreiben müssen.
Auf dieser Seite wird erläutert, wie Sie Spring Data Spanner einem Java hinzufügen. . Detaillierte Informationen zum Modul finden Sie in der Referenz zu Spring Data Spanner.
Modul installieren
Wenn Sie Maven verwenden, fügen Sie die Spring Cloud GCP-Rechnung
Materialien (BOM)
und Spring Data Spanner in Ihre pom.xml
-Datei. Diese Abhängigkeiten stellen die Spring Data Spanner-Komponenten für den Spring-ApplicationContext
bereit:
Außerdem müssen Sie ein Dienstkonto erstellen und den Dienstkontoschlüssel zum Authentifizieren bei Google Cloud verwenden.
Weitere Informationen finden Sie in der Anleitung zum Java-Entwicklungsumgebung einrichten. Sie müssen die Google Cloud-Clientbibliothek für Java nicht installieren. Der Spring Boot-Starter installiert die Clientbibliothek automatisch.
Modul konfigurieren
In diesem Abschnitt werden einige der am häufigsten verwendeten Konfigurationseinstellungen für Spring Data Spanner. Eine vollständige Liste der Einstellungen finden Sie in der Referenzdokumentation.
Instanz und Datenbank angeben
Um die Standardinstanz und -datenbank anzugeben, legen Sie die folgenden Konfigurationsattribute für Ihre Anwendung fest:
Attribut | Beschreibung |
---|---|
spring.cloud.gcp.spanner.project-id |
Optional Die Google Cloud-Projekt-ID. Überschreibt den Wert von spring.cloud.gcp.config.project-id . |
spring.cloud.gcp.spanner.instance-id |
Die Spanner-Instanz-ID. |
spring.cloud.gcp.spanner.database |
Die Datenbank, zu der eine Verbindung hergestellt werden soll. |
Spanner-Daten modellieren
Mit Spring Data Spanner können Sie einfache alte Java-Objekte (POJOs) verwenden, um die in Ihren Spanner-Tabellen gespeicherten Daten zu modellieren.
Deklarieren Sie für jede Tabelle in der Datenbank eine Entität, die einen Datensatz in dieser Tabelle darstellt. Verwenden Sie Anmerkungen, um die Entität und dazugehörige Attribute einer Tabelle und ihren Spalten zuzuordnen.
Sie können die folgenden Annotationen verwenden, um einfache Beziehungen zwischen Entitäten und Tabellen zu modellieren:
Entitätsanmerkungen | |
---|---|
@Column(name = "columnName")
|
Optional. Ordnet die Eigenschaft einer bestimmten Spalte im Spanner-Tabelle zu erstellen. Dabei wird die Namensstrategie überschrieben, ordnet die Namen automatisch zu.
Wenn Sie diese Eigenschaft weglassen, wird die Standard-Benennungsstrategie für
Spring Data Spanner ordnet Java-Attribut |
@Embedded |
Gibt an, dass das Attribut ein eingebettetes Objekt ist, das Komponenten eines Primärschlüssels enthalten kann. Wenn das Attribut tatsächlich im Primärschlüssel verwendet wird, müssen Sie auch die Anmerkung |
|
Gibt an, dass ein Attribut eine Liste von Zeilen enthält, die mit der aktuellen Zeile verschränkt sind.
Standardmäßig ruft Spring Data Spanner die verschränkten Zeilen bei der Instanzerstellung ab. Zum verzögerten Abruf der Zeilen verwenden Sie
Beispiel: Wenn die Entität |
@NotMapped |
Gibt an, dass ein Attribut nicht in der Datenbank gespeichert ist und ignoriert werden soll. |
|
Gibt an, dass das Attribut eine Komponente des Primärschlüssels ist und die Position des Attributs innerhalb des Primärschlüssels angibt, beginnend bei 1. Der Standardwert von Beispiel: |
@Table(name = "TABLE_NAME") |
Die Tabelle, die die Entität modelliert. Jede Instanz der Entität stellt einen Datensatz in der Tabelle dar. Ersetzen Sie
Beispiel: |
Wenn Sie komplexere Beziehungen modellieren müssen, lesen Sie Spring Data Spanner-Referenz finden Sie weitere Informationen zu anderen vom Modul unterstützten Annotationen.
Die folgenden Beispiele zeigen eine Möglichkeit, die Tabellen Singers
und Albums
zu modellieren.
für Spring Data Spanner:
- Für
Singer
-Entitäten enthält das Beispiel das Attributalbums
mit der Anmerkung@Interleaved
. Dieses Attribut enthält eine Liste von Alben, die mit der EntitätSinger
verschränkt sind. Spring Data Spanner-Daten füllt automatisch bearbeiten. - Für
Album
-Entitäten enthält das Beispiel das AttributrelatedAlbums
, das nicht in Spanner gespeichert ist.
Daten abfragen und ändern
Zum Abfragen und Ändern von Daten mit Spring Data Spanner können Sie eine
SpannerTemplate
-Bean, die Folgendes implementiert:
SpannerOperations
SpannerTemplate
bietet Methoden zum Durchführen von SQL-Abfragen und Ändern von Daten mit DML-Anweisungen (Data Manipulation Language). Sie können auch
diese Bean, um auf die Read API und die Mutation
API für Spanner.
Darüber hinaus können Sie die
SpannerRepository
-Schnittstelle zum Kapseln
die gesamte Anwendungslogik,
die Daten in Spanner abfragt und ändert.
In den folgenden Abschnitten wird die Verwendung von SpannerTemplate
und SpannerRepository
erläutert.
Vorlagen-Bean erwerben
Mit der Anmerkung @Autowired
können Sie eine SpannerTemplate
-Bean automatisch übernehmen. Anschließend können Sie SpannerTemplate
in der gesamten Klasse verwenden.
Das folgende Beispiel zeigt eine Klasse, die die Bean übernimmt und verwendet:
Sie können die SpannerTemplate
-Bean verwenden, um nur schreibgeschützte Transaktionen und Lese-Schreib-Transaktionen auszuführen. Außerdem können Sie die @Transactional
-Anmerkung verwenden, um deklarative Transaktionen zu erstellen.
Eine Repository-Bean erwerben
Bei Verwendung eines SpannerRepository
können Sie die @Autowired
-Anmerkung zur Übernahme einer Bean verwenden, die die Oberfläche Ihres Repositorys implementiert. Ein Repository enthält Methoden zum Ausführen von Java-Funktionen als schreibgeschützte Transaktionen und Lese-Schreib-Transaktionen. Für untergeordnete Vorgänge können Sie die vom Repository verwendete Vorlagen-Bean abrufen.
Die folgenden Beispiele zeigen die Oberfläche für ein Repository und eine Klasse, die die Bean übernimmt und verwendet:
Spanner verwalten
Um Informationen zu Ihren Spanner-Datenbanken zu erhalten, aktualisieren Sie ein Schema mit einem
DDL-Anweisung (Data Definition Language, Datendefinitionssprache) oder führen Sie andere administrative
können Sie eine
SpannerDatabaseAdminTemplate
Bohnen.
Mit der Anmerkung @Autowired
können Sie eine -Bean automatisch übernehmen. Anschließend können Sie die SpannerDatabaseAdminTemplate
in der gesamten Klasse verwenden.
Das folgende Beispiel zeigt eine Klasse, die die Bean übernimmt und verwendet:
Nächste Schritte
- Erste Schritte mit Spring Cloud GCP.
- Weitere Informationen über Spring Data Spanner in Ihren Anwendungen verwenden
- GitHub-Problem melden um einen Fehler zu melden oder eine Frage zum Modul zu stellen.
- Weitere Informationen zum Spring Framework-Support in Google Cloud
- Ein Code-Lab ausprobieren, um eine Anwendung bereitzustellen und auszuführen, die Spring Cloud GCP verwendet.