Modul Spring Data Spanner membantu Anda menggunakan Spanner di aplikasi Java apa pun yang dibuat dengan Spring Framework.
Seperti semua modul Spring Data, Spring Data Spanner menyediakan model pemrograman berbasis Spring yang mempertahankan jaminan konsistensi dan skalabilitas Spanner. Fitur ini mirip dengan Spring Data JPA dan Hibernate ORM, dengan anotasi yang dirancang untuk Spanner. Untuk informasi selengkapnya tentang cara menggunakan Spring Data JPA dengan Spanner, lihat Mengintegrasikan Spanner dengan Spring Data JPA (dialek GoogleSQL).
Jika Anda sudah terbiasa dengan Spring, Spring Data Spanner dapat mempermudah penggunaan Spanner dalam aplikasi Anda dan mengurangi jumlah kode yang perlu Anda tulis.
Halaman ini menjelaskan cara menambahkan Spring Data Spanner ke aplikasi Java. Untuk mengetahui informasi mendetail tentang modul ini, lihat referensi Spring Data Spanner.
Menginstal modul
Jika Anda menggunakan Maven, tambahkan Bill of
Materials (BOM) Spring Cloud GCP
dan Spring Data Spanner ke file pom.xml
. Dependensi ini
menyediakan komponen Spring Data Spanner ke ApplicationContext
Spring Anda:
Anda juga harus membuat akun layanan dan menggunakan kunci akun layanan untuk melakukan autentikasi dengan Google Cloud.
Untuk mengetahui informasi selengkapnya, lihat petunjuk untuk menyiapkan lingkungan pengembangan Java. Anda tidak perlu menginstal Library Klien Google Cloud untuk Java karena starter Spring Boot akan menginstal library klien secara otomatis.
Mengonfigurasi modul
Bagian ini menjelaskan beberapa setelan konfigurasi yang paling umum digunakan untuk Spring Data Spanner. Untuk mengetahui daftar lengkap setelan, lihat dokumentasi referensi.
Menentukan instance dan database
Untuk menentukan instance dan database default, tetapkan properti konfigurasi berikut untuk aplikasi Anda:
Properti | Deskripsi |
---|---|
spring.cloud.gcp.spanner.project-id |
Opsional. ID Project Google Cloud. Mengganti nilai spring.cloud.gcp.config.project-id . |
spring.cloud.gcp.spanner.instance-id |
ID instance Spanner. |
spring.cloud.gcp.spanner.database |
Database yang akan dihubungkan. |
Model data Spanner
Dengan Spring Data Spanner, Anda dapat menggunakan objek Java biasa (POJO) untuk membuat model data yang Anda simpan di tabel Spanner.
Untuk setiap tabel dalam database, deklarasikan entity yang mewakili data dalam tabel tersebut. Gunakan anotasi untuk memetakan entity dan propertinya ke tabel dan kolomnya.
Anda dapat menggunakan anotasi berikut untuk membuat model hubungan sederhana antara entitas dan tabel:
Anotasi entity | |
---|---|
@Column(name = "columnName")
|
Opsional. Memetakan properti ke kolom tertentu dalam tabel Spanner, yang mengganti strategi penamaan yang otomatis memetakan nama.
Jika Anda menghilangkan properti ini, strategi penamaan default untuk
Spring Data Spanner akan memetakan nama properti |
@Embedded |
Menunjukkan bahwa properti adalah objek tersemat yang dapat menyimpan
komponen kunci utama. Jika properti benar-benar digunakan dalam
kunci utama, Anda juga harus menyertakan anotasi
|
|
Menunjukkan bahwa properti berisi daftar baris yang diselingi dengan baris saat ini.
Secara default, Spring Data Spanner mengambil baris yang diselingi
saat pembuatan instance. Untuk mengambil baris secara lambat, saat Anda mengakses properti, gunakan
Contoh: Jika entitas |
@NotMapped |
Menunjukkan bahwa properti tidak disimpan dalam database dan harus diabaikan. |
|
Menunjukkan bahwa properti adalah komponen kunci utama, dan
mengidentifikasi posisi properti dalam kunci utama,
mulai dari 1. Default
Contoh: |
@Table(name = "TABLE_NAME") |
Tabel yang dimodelkan entitas. Setiap instance entity mewakili kumpulan data dalam tabel. Ganti
Contoh: |
Jika Anda perlu membuat model hubungan yang lebih kompleks, lihat referensi Spring Data Spanner untuk mengetahui detail tentang anotasi lain yang didukung modul.
Contoh berikut menunjukkan satu cara untuk membuat model tabel Singers
dan Albums
untuk Spring Data Spanner:
- Untuk entitas
Singer
, contoh menyertakan propertialbums
, dengan anotasi@Interleaved
. Properti ini berisi daftar album yang diselingi dengan entitySinger
. Spring Data Spanner mengisi properti ini secara otomatis. - Untuk entity
Album
, contoh menyertakan propertirelatedAlbums
yang tidak disimpan di Spanner.
Membuat kueri dan mengubah data
Untuk membuat kueri dan mengubah data dengan Spring Data Spanner, Anda dapat memperoleh
bean SpannerTemplate
, yang mengimplementasikan
SpannerOperations
. SpannerTemplate
menyediakan metode untuk menjalankan kueri SQL dan mengubah data dengan pernyataan Bahasa Manipulasi Data (DML). Anda juga dapat menggunakan
bean ini untuk mengakses read API dan mutation
API untuk Spanner.
Selain itu, Anda dapat memperluas
antarmuka SpannerRepository
untuk mengenkapsulasi
semua logika aplikasi yang membuat kueri dan mengubah data di Spanner.
Bagian berikut menjelaskan cara menggunakan SpannerTemplate
dan
SpannerRepository
.
Mendapatkan bean template
Gunakan anotasi @Autowired
untuk mendapatkan bean SpannerTemplate
secara otomatis. Kemudian, Anda dapat menggunakan SpannerTemplate
di seluruh class.
Contoh berikut menunjukkan class yang memperoleh dan menggunakan bean:
Anda dapat menggunakan bean SpannerTemplate
untuk menjalankan transaksi
hanya baca dan transaksi
baca-tulis. Selain itu, Anda dapat menggunakan
anotasi @Transactional
untuk membuat transaksi
deklaratif.
Mendapatkan bean repositori
Jika menggunakan SpannerRepository
, Anda dapat menggunakan anotasi @Autowired
untuk
mendapatkan bean yang mengimplementasikan antarmuka repositori Anda. Repositori
menyertakan metode untuk menjalankan fungsi Java sebagai transaksi
hanya baca dan transaksi
baca-tulis. Untuk operasi tingkat rendah, Anda dapat
mendapatkan bean template yang digunakan repositori.
Contoh berikut menunjukkan antarmuka untuk repositori dan class yang mendapatkan dan menggunakan bean:
Mengelola Spanner
Untuk mendapatkan informasi tentang database Spanner, memperbarui skema dengan
pernyataan Bahasa Definisi Data (DDL), atau menyelesaikan tugas administrative
lainnya, Anda dapat memperoleh bean
SpannerDatabaseAdminTemplate
.
Gunakan anotasi @Autowired
untuk mendapatkan bean secara otomatis. Kemudian, Anda dapat
menggunakan SpannerDatabaseAdminTemplate
di seluruh class.
Contoh berikut menunjukkan class yang memperoleh dan menggunakan bean:
Langkah selanjutnya
- Mulai menggunakan Spring Cloud GCP.
- Pelajari lebih lanjut cara menggunakan Spring Data Spanner di aplikasi Anda.
- Buat laporan masalah GitHub untuk melaporkan bug atau mengajukan pertanyaan tentang modul ini.
- Dapatkan informasi selengkapnya tentang dukungan Spring Framework di Google Cloud.
- Coba codelab untuk men-deploy dan menjalankan aplikasi yang menggunakan GCP Spring Cloud.