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. Fiturnya mirip dengan Spring Data JPA dan Hibernate ORM, dengan anotasi yang dirancang untuk Spanner. Untuk mengetahui 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 Anda. Dependensi ini
menyediakan komponen Spring Data Spanner ke
SpringApplicationContextAnda:
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 Google Cloud Library Klien untuk Java karena starter Spring Boot akan menginstal library klien secara otomatis.
Mengonfigurasi modul
Bagian ini menjelaskan beberapa setelan konfigurasi yang paling sering 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 Google Cloud project. 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. |
Membuat model data Spanner
Dengan Spring Data Spanner, Anda dapat menggunakan objek Java lama (POJO) biasa untuk membuat model data yang Anda simpan di tabel Spanner.
Untuk setiap tabel di database Anda, deklarasikan entity yang mewakili rekaman 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 entity dan tabel:
| Anotasi entity | |
|---|---|
@Column(name = "columnName")
|
Opsional. Memetakan properti ke kolom tertentu dalam tabel Spanner, yang mengganti strategi penamaan yang secara otomatis memetakan nama.
Jika Anda menghapus 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 |
|
|
Menunjukkan bahwa properti berisi daftar baris yang disisipkan dengan baris saat ini.
Secara default, Spring Data Spanner mengambil baris yang disisipkan
saat pembuatan instance. Untuk mengambil baris secara lambat, saat Anda mengakses properti, gunakan
Contoh: Jika entity |
@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,
dimulai dari 1.
Contoh: |
@Table(name = "TABLE_NAME") |
Tabel yang dimodelkan entity. Setiap instance entity
mewakili rekaman 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 salah satu cara untuk membuat model tabel Singers dan Albums untuk Spring Data Spanner:
- Untuk entity
Singer, contoh ini menyertakan propertialbums, dengan anotasi@Interleaved. Properti ini berisi daftar album yang disisipkan dengan entitySinger. Spring Data Spanner mengisi properti ini secara otomatis. - Untuk
Albumentity, contoh ini menyertakan propertirelatedAlbumsyang tidak disimpan di Spanner.
Membuat kueri dan mengubah data
Untuk membuat kueri dan mengubah data dengan Spring Data Spanner, Anda dapat memperoleh a
SpannerTemplate bean, yang mengimplementasikan
SpannerOperations. SpannerTemplate
menyediakan metode untuk menjalankan kueri SQL dan mengubah data
dengan pernyataan Bahasa Pengolahan Data (DML). Anda juga dapat menggunakan
bean ini untuk mengakses API baca dan API mutasi untuk Spanner.
Selain itu, Anda dapat memperluas antarmuka
SpannerRepository untuk merangkum
semua logika aplikasi yang membuat kueri dan mengubah data di Spanner.
Bagian berikut menjelaskan cara menggunakan SpannerTemplate dan SpannerRepository.
Memperoleh bean template
Gunakan anotasi @Autowired untuk memperoleh bean SpannerTemplate secara otomatis. Kemudian, Anda dapat menggunakan SpannerTemplate di seluruh class Anda.
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 untuk membuat transaksi deklaratif.@Transactional
Memperoleh bean repositori
Jika menggunakan SpannerRepository, Anda dapat menggunakan anotasi @Autowired untuk memperoleh bean yang mengimplementasikan antarmuka repositori Anda. Repositori
mencakup metode untuk menjalankan fungsi Java sebagai transaksi hanya baca dan transaksi baca-tulis. Untuk operasi tingkat yang lebih rendah, Anda bisa mendapatkan bean template yang digunakan repositori.
Contoh berikut menunjukkan antarmuka untuk repositori dan class yang memperoleh dan menggunakan bean:
Mengelola Spanner
Untuk mendapatkan informasi tentang database Spanner Anda, memperbarui skema dengan pernyataan Bahasa Definisi Data (DDL), atau menyelesaikan tugas administratif lainnya, Anda dapat memperoleh bean SpannerDatabaseAdminTemplate.
Gunakan anotasi @Autowired untuk memperoleh bean secara otomatis. Kemudian, Anda dapat menggunakan SpannerDatabaseAdminTemplate di seluruh class Anda.
Contoh berikut menunjukkan class yang memperoleh dan menggunakan bean:
Langkah berikutnya
- Mulai menggunakan Spring Cloud GCP.
- Pelajari lebih lanjut tentang cara menggunakan Spring Data Spanner pada aplikasi Anda.
- Buatlah 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 Spring Cloud GCP.