Panduan pengembang Azure Cosmos DB
Azure Spring Data untuk Azure Cosmos DB menyediakan dukungan Spring Data untuk Azure Cosmos DB untuk NoSQL. Azure Cosmos DB adalah layanan database terdistribusi secara global yang memungkinkan pengembang untuk bekerja dengan data menggunakan berbagai API standar, seperti SQL, MongoDB, Cassandra, Graph, dan Table.
Panduan ini akan memandu Anda melalui konsep Azure Spring Data Azure Cosmos DB SDK, fitur yang didukung, pemecahan masalah, dan masalah yang diketahui. Untuk informasi selengkapnya tentang konsep dan sampel kode di bawah ini, lihat readme Spring Data for Azure Cosmos DB SDK.
Kebijakan dukungan versi
Dukungan versi Spring Boot
Proyek ini mendukung beberapa versi Spring Boot. Untuk informasi selengkapnya, lihat Kebijakan Dukungan Spring Boot. Pengguna Maven dapat mewarisi dari proyek spring-boot-starter-parent
untuk mendapatkan bagian manajemen dependensi guna mengizinkan Spring mengelola versi untuk dependensi. Untuk informasi selengkapnya, lihat Dukungan Versi Spring Boot.
Dukungan versi Spring Data
Proyek ini mendukung beberapa versi spring-data-commons. Untuk informasi selengkapnya, lihat Dukungan Versi Spring Data.
Versi Azure Spring Data Azure Cosmos DB mana yang akan digunakan
Pustaka Azure Spring Data Azure Cosmos DB mendukung beberapa versi Spring Boot / Spring Cloud. Untuk informasi selengkapnya tentang versi Azure Spring Data Azure Cosmos DB mana yang akan digunakan dengan versi Spring Boot / Spring Cloud, lihat Versi Azure Spring Data mana untuk Azure Cosmos DB yang harus saya gunakan?.
Mulai
Sertakan paket
Jika Anda menggunakan Maven, tambahkan dependensi berikut.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>LATEST</version>
</dependency>
Prasyarat
- Java Development Kit (JDK), versi 8 atau yang lebih tinggi.
- Akun Azure aktif. Jika tidak memilikinya, Anda dapat mendaftar untuk akun gratis. Atau, Anda dapat menggunakan Emulator Azure Cosmos DB untuk pengembangan dan pengujian. Karena sertifikat https emulator ditandatangani sendiri, Anda perlu mengimpor sertifikatnya ke penyimpanan sertifikat tepercaya java, yang dijelaskan di sini
- (Opsional) SLF4J adalah fasad pengelogan.
- (Opsional) Pengikatan SLF4J digunakan untuk mengaitkan kerangka kerja pengelogan tertentu dengan SLF4J.
- (Opsional) Maven
SLF4J hanya diperlukan jika Anda berencana untuk menggunakan pengelogan, juga mengunduh pengikatan SLF4J, yang akan menautkan API SLF4J dengan implementasi pengelogan pilihan Anda. Untuk informasi selengkapnya, lihat manual pengguna SLF4J.
Menyiapkan dan menyesuaikan kelas konfigurasi
Untuk menyiapkan kelas konfigurasi, Anda perlu memperluas AbstractCosmosConfiguration
. Untuk informasi selengkapnya, lihat Menyiapkan Kelas Konfigurasi.
Anda dapat menyesuaikan dasar yang CosmosAsyncClient
digunakan oleh Azure Spring Data Azure Cosmos DB SDK dengan menyediakan DirectConnectionConfig
atau atau GatewayConnectionConfig
keduanya dan menyediakannya ke CosmosClientBuilder
. Untuk sampel lengkap, kunjungi bagian menyesuaikan konfigurasi.
Penyiapan entitas
Anda dapat menentukan entitas sederhana sebagai item di Azure Cosmos DB. Anda dapat menentukan entitas dengan menambahkan @Container
anotasi dan menentukan properti yang terkait dengan kontainer. Untuk informasi selengkapnya, lihat Menentukan entitas.
Anotasi kontainer mendukung penentuan nama kontainer, unit permintaan (RU), waktu untuk hidup, membuat kontainer dengan throughput skala otomatis, dukungan kunci partisi berlapis, dan properti kontainer lainnya.
Penyiapan repositori
Azure Spring Data Azure Cosmos DB mendukung ReactiveCrudRepository
(API asinkron) dan CrudRepository
(API sinkronisasi), yang menyediakan fungsionalitas CRUD dasar berikut:
- simpan
- findAll
- findOne berdasarkan ID
- deleteAll
- hapus berdasarkan ID
- hapus entitas
Anda dapat memperluas CosmosRepository
(untuk dukungan API sinkronisasi) atau ReactiveCosmosRepository
(untuk dukungan API asinkron) untuk menyiapkan repositori Spring Data untuk aplikasi Anda. Untuk informasi selengkapnya, lihat Membuat repositori.
Azure Spring Data Azure Cosmos DB mendukung penentuan kueri anotasi di repositori menggunakan @Query
. Untuk informasi selengkapnya, lihat QueryAnnotation : Menggunakan kueri yang dianotasi di repositori.
Anotasi Data Spring
Anotasi @Id Spring Data
Ada beberapa cara untuk memetakan bidang di kelas domain ke id
. Untuk informasi selengkapnya, lihat bagian kode anotasi ID data spring.
Pembuatan otomatis ID
Azure Spring Data Azure Cosmos DB mendukung pembuatan ID otomatis menggunakan @GeneratedValue anotasi. Untuk informasi selengkapnya, lihat bagian pembuatan otomatis ID.
Ekspresi SpEL dan nama kontainer kustom
Secara default, nama kontainer akan menjadi nama kelas kelas domain pengguna. Untuk menyesuaikan, tambahkan @Container(containerName="myCustomContainerName")
anotasi ke kelas domain. Untuk informasi selengkapnya, lihat bagian ekspresi SpEL dan nama kontainer kustom.
IndexingPolicy Kustom
Secara default, IndexingPolicy
akan diatur oleh layanan Azure. Untuk menyesuaikan, tambahkan anotasi @CosmosIndexingPolicy
ke kelas domain. Untuk informasi selengkapnya, lihat bagian kebijakan pengindeksan.
Kebijakan kunci unik
Azure Spring Data Azure Cosmos DB mendukung pengaturan UniqueKeyPolicy
pada kontainer dengan menambahkan anotasi @CosmosUniqueKeyPolicy
ke kelas domain. Untuk informasi selengkapnya, lihat bagian kebijakan kunci unik.
Partisi Azure Cosmos DB
Azure-spring-data-cosmos
mendukung partisi Azure Cosmos DB.
Untuk menentukan bidang kelas domain menjadi bidang kunci partisi, cukup anotasi dengan @PartitionKey
.
Saat Anda melakukan operasi CRUD, tentukan nilai partisi Anda.
Untuk informasi selengkapnya, lihat bagian uji di sini.
Penguncian Optimis
Azure-spring-data-cosmos
mendukung Penguncian Optimis untuk kontainer tertentu, yang berarti upsert/penghapusan berdasarkan item akan gagal dengan pengecualian jika item dimodifikasi oleh proses lain sementara itu. Untuk informasi selengkapnya, lihat bagian penguncian optimis.
Kueri kustom, pageable, dan pengurutan Data Spring
Azure-spring-data-cosmos
mendukung kueri kustom Spring Data, misalnya, operasi temukan seperti findByAFieldAndBField
. Ini juga mendukung Spring Data Pageable, Slice, dan Sort. Untuk informasi selengkapnya, lihat bagian kueri, pageable, dan pengurutan.
Menggunakan Azure Cosmos DB Java SDK melalui Spring Data Cosmos
Azure-spring-data-cosmos
mendukung penggunaan Azure Cosmos DB Java SDK
. Pengguna bisa mendapatkan CosmosClient
atau CosmosAsyncClient
membuat kacang melalui ApplicationContext
dan menjalankan operasi apa pun yang didukung oleh Azure Cosmos DB Java SDK. Untuk informasi selengkapnya, lihat bagian menggunakan Klien Azure Cosmos melalui Spring Data Cosmos.
Spring Data REST
Azure-spring-data-cosmos
mendukung Spring Data REST. Untuk informasi selengkapnya, lihat bagian Azure Spring Data Azure Cosmos DB REST API.
Audit
Azure-spring-data-cosmos
mendukung bidang audit pada entitas database menggunakan anotasi spring-data standar. Untuk informasi selengkapnya, lihat bagian audit Spring Data Azure Cosmos DB.
Konfigurasi multi-database
Azure-spring-data-cosmos
mendukung konfigurasi multi-database, termasuk "beberapa akun database" dan "akun tunggal, dengan beberapa database". Untuk cuplikan kode lengkap, lihat bagian konfigurasi multi database.
Pemecahan Masalah
Umum
Jika Anda mengalami bug, ajukan masalah di sini.
Untuk menyarankan fitur atau perubahan baru yang dapat dibuat, ajukan masalah dengan cara yang sama seperti yang Anda lakukan untuk bug.
Mengaktifkan Pengelogan Klien
Azure-spring-data-cosmos
menggunakan SLF4j sebagai fasad pengelogan yang mendukung pengelogan ke kerangka kerja pengelogan populer seperti log4j dan logback. Untuk informasi selengkapnya, lihat bagian aktifkan pengelogan klien.
Contoh
Untuk proyek sampel lengkap, lihat proyek sampel.
Akun multi-database
Untuk proyek sampel lengkap, lihat proyek sampel Multi-database.
Akun tunggal dengan Multi-database
Untuk proyek sampel lengkap, lihat Akun tunggal dengan proyek sampel Multi-database.
Langkah berikutnya
- Baca selengkapnya tentang azure spring data Azure Cosmos DB.
- Baca selengkapnya tentang Layanan Azure Cosmos DB
- Lihat Sampel Azure Spring Data Azure Cosmos DB
- Lihat Spring MVC dengan Sampel Azure Cosmos DB
Berkontribusi
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda untuk menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk benar-benar memberi hak pada kami untuk menggunakan kontribusi Anda.
Saat Anda mengirimkan permintaan pull, cla-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repositori menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Kode Etik atau hubungi opencode@microsoft.com dengan pertanyaan atau komentar lainnya.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk