Il modulo Spring Data Spanner ti consente di utilizzare Spanner in qualsiasi applicazione Java creata con il framework Spring.
Come tutti i moduli Spring Data, Spring Data Spanner offre un modello di programmazione basato su Spring che mantiene le garanzie di coerenza e la scalabilità di Spanner. Le sue caratteristiche sono simili a Spring Data JPA e Hibernate ORM, con annotazioni progettate per Spanner. Per saperne di più su come utilizzare Spring Data JPA con Spanner, consulta Integrare Spanner con Spring Data JPA (dialetto GoogleSQL).
Se conosci già Spring, Spring Data Spanner può semplificare l'utilizzo di Spanner nell'applicazione e ridurre la quantità di codice da scrivere.
Questa pagina spiega come aggiungere Spring Data Spanner a un'applicazione Java. Per informazioni dettagliate sul modulo, consulta la documentazione di riferimento su Spring Data Spanner.
Installa il modulo
Se utilizzi Maven, aggiungi la BOM (Bill of Materials (BOM) di Spring Cloud GCP) e la Spanner Data Spring al file pom.xml
. Queste dipendenze forniscono i componenti di Spring Data Spanner a Spring ApplicationContext
:
Devi inoltre creare un account di servizio e utilizzare la relativa chiave per l'autenticazione con Google Cloud.
Per ulteriori informazioni, consulta le istruzioni per la configurazione di un ambiente di sviluppo Java. Non è necessario installare la libreria client di Google Cloud per Java; il comando iniziale Spring Boot installa la libreria client automaticamente.
Configurare il modulo
Questa sezione descrive alcune delle impostazioni di configurazione più utilizzate per Spring Data Spanner. Per un elenco completo delle impostazioni, consulta la documentazione di riferimento.
Specifica un'istanza e un database
Per specificare l'istanza e il database predefiniti, imposta le seguenti proprietà di configurazione per l'applicazione:
Proprietà | Descrizione |
---|---|
spring.cloud.gcp.spanner.project-id |
Facoltativo. L'ID progetto Google Cloud. Sostituisce il valore di spring.cloud.gcp.config.project-id . |
spring.cloud.gcp.spanner.instance-id |
L'ID istanza Spanner. |
spring.cloud.gcp.spanner.database |
Il database a cui connettersi. |
Dati Spanner del modello
Con Spring Data Spanner, puoi utilizzare oggetti Java vecchi (POJO) semplici per modellare i dati archiviati nelle tabelle Spanner.
Per ogni tabella del database, dichiara un'entità che rappresenta un record al suo interno. Utilizza le annotazioni per mappare l'entità e le sue proprietà a una tabella e alle relative colonne.
Puoi utilizzare le seguenti annotazioni per modellare relazioni semplici tra entità e tabelle:
Annotazioni di entità | |
---|---|
@Column(name = "columnName")
|
Facoltativo. Mappa la proprietà a una colonna specifica nella tabella Spanner, sostituendo la strategia di denominazione che mappa automaticamente i nomi.
Se ometti questa proprietà, la strategia di denominazione predefinita per
Spring Data Spanner mappa i nomi delle proprietà Java |
@Embedded |
Indica che la proprietà è un oggetto incorporato che può contenere i componenti di una chiave primaria. Se la proprietà viene effettivamente utilizzata nella
chiave primaria, devi includere anche l'annotazione
|
|
Indica che una proprietà contiene un elenco di righe con interleaving con la riga corrente.
Per impostazione predefinita, Spring Data Spanner recupera le righe con interleaving al momento della creazione dell'istanza. Per recuperare le righe in modo lento, quando accedi alla
proprietà, utilizza
Esempio: se un'entità |
@NotMapped |
Indica che una proprietà non è archiviata nel database e deve essere ignorata. |
|
Indica che la proprietà è un componente della chiave primaria e identifica la posizione della proprietà all'interno della chiave primaria, a partire da 1. Il valore predefinito di
Esempio: |
@Table(name = "TABLE_NAME") |
La tabella che modella l'entità. Ogni istanza dell'entità rappresenta un record nella tabella. Sostituisci
Esempio: |
Se hai bisogno di modellare relazioni più complesse, consulta il riferimento Spring Data Spanner per i dettagli sulle altre annotazioni supportate dal modulo.
I seguenti esempi mostrano un modo per modellare le tabelle Singers
e Albums
per Spring Data Spanner:
- Per le entità
Singer
, l'esempio include una proprietàalbums
, con un'annotazione@Interleaved
. Questa proprietà contiene un elenco di album interlacciati con l'entitàSinger
. Spanner Data Spring compila automaticamente questa proprietà. - Per le entità
Album
, l'esempio include una proprietàrelatedAlbums
che non è archiviata in Spanner.
Query e modifica dei dati
Per eseguire query e modificare i dati con Spring Data Spanner, puoi acquisire un bean SpannerTemplate
, che implementa SpannerOperations
. SpannerTemplate
fornisce metodi per eseguire query SQL e modificare i dati
con istruzioni DML (Data Manipulation Language). Puoi utilizzare questo bean anche per accedere all'API Read e all'API di mutazione per Spanner.
Inoltre, puoi estendere l'interfaccia di SpannerRepository
per incapsulare tutta la logica dell'applicazione che esegue query e modifica i dati in Spanner.
Le sezioni seguenti spiegano come utilizzare SpannerTemplate
e
SpannerRepository
.
Acquisisci un modello di bean
Utilizza l'annotazione @Autowired
per acquisire automaticamente un bean SpannerTemplate
. Potrai quindi utilizzare SpannerTemplate
durante il corso.
Nell'esempio seguente viene mostrata una classe che acquisisce e utilizza il bean:
Puoi utilizzare il bean SpannerTemplate
per eseguire transazioni di sola lettura e transazioni di lettura-scrittura. Inoltre, puoi utilizzare l'annotazione @Transactional
per creare transazioni dichiarative.
Acquisisci un bean di repository
Se utilizzi un oggetto SpannerRepository
, puoi utilizzare l'annotazione @Autowired
per acquisire un bean che implementi l'interfaccia del repository. Un repository include metodi per l'esecuzione di funzioni Java come transazioni di sola lettura e transazioni di lettura-scrittura. Per operazioni di livello inferiore, puoi
recuperare il bean modello utilizzato dal repository.
I seguenti esempi mostrano l'interfaccia di un repository e una classe che acquisisce e utilizza il bean:
Gestisci Spanner
Per ottenere informazioni sui database Spanner, aggiornare uno schema con un'istruzione DDL (Data Definition Language) o completare altre attività amministrative, puoi acquisire un bean SpannerDatabaseAdminTemplate
.
Utilizza l'annotazione @Autowired
per acquisire automaticamente il bean. Potrai quindi usare SpannerDatabaseAdminTemplate
per tutta la durata del corso.
Nell'esempio seguente viene mostrata una classe che acquisisce e utilizza il bean:
Passaggi successivi
- Inizia a utilizzare Spring Cloud GCP.
- Scopri di più sull'utilizzo di Spring Data Spanner nelle tue applicazioni.
- Invia una segnalazione su GitHub per segnalare un bug o fare una domanda sul modulo.
- Scopri di più sul supporto del framework Spring su Google Cloud.
- Prova un codelab per eseguire il deployment e l'esecuzione di un'applicazione che utilizza la piattaforma Google Cloud Spring Cloud.