Azure Cosmos DB geliştirici kılavuzu
Azure Cosmos DB için Azure Spring Data, NoSQL için Azure Cosmos DB için Spring Data desteği sağlar. Azure Cosmos DB , geliştiricilerin SQL, MongoDB, Cassandra, Graph ve Tablo gibi çeşitli standart API'leri kullanarak verilerle çalışmasına olanak tanıyan genel olarak dağıtılmış bir veritabanı hizmetidir.
Bu kılavuz, Azure Spring Data Azure Cosmos DB SDK kavramları, desteklenen özellikler, sorun giderme ve bilinen sorunlar hakkında size yol gösterir. Aşağıdaki kavramlar ve kod örnekleri hakkında daha fazla bilgi için bkz. Azure Cosmos DB SDK'sı için Spring Data benioku.
Sürüm destek ilkesi
Spring Boot sürüm desteği
Bu proje birden çok Spring Boot sürümünü destekler. Daha fazla bilgi için bkz . Spring Boot Destek İlkesi. Maven kullanıcıları, Spring'in bağımlılıkların sürümlerini yönetmesine izin vermek üzere bir bağımlılık yönetimi bölümü almak üzere projeden spring-boot-starter-parent
devralabilir. Daha fazla bilgi için bkz . Spring Boot Sürüm Desteği.
Spring Data sürüm desteği
Bu proje farklı spring-data-commons sürümlerini destekler. Daha fazla bilgi için bkz . Spring Data Sürüm Desteği.
Azure Spring Data Azure Cosmos DB'nin hangi sürümünün kullanılacağı
Azure Spring Data Azure Cosmos DB kitaplığı, Spring Boot /Spring Cloud'un birden çok sürümünü destekler. Spring Boot / Spring Cloud sürümüyle kullanılacak Azure Spring Data Azure Cosmos DB sürümü hakkında daha fazla bilgi için bkz . Azure Cosmos DB için Azure Spring Data'nın hangi sürümünü kullanmalıyım?.
Başlarken
Paketi dahil et
Maven kullanıyorsanız aşağıdaki bağımlılığı ekleyin.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>LATEST</version>
</dependency>
Önkoşullar
- Java Development Kit (JDK), sürüm 8 veya üzeri.
- Etkin bir Azure hesabı. Bir aboneliğiniz yoksa ücretsiz bir hesap için kaydolabilirsiniz. Alternatif olarak, geliştirme ve test için Azure Cosmos DB Öykünücüsü'ni kullanabilirsiniz. Öykünücü https sertifikası otomatik olarak imzalandığından, sertifikasını burada açıklandığı gibi java güvenilen sertifika deposuna aktarmanız gerekir
- (İsteğe bağlı) SLF4J bir günlüğe kaydetme cephesi.
- (İsteğe bağlı) SLF4J bağlaması , belirli bir günlük çerçevesini SLF4J ile ilişkilendirmek için kullanılır.
- (İsteğe bağlı) Maven
SLF4J yalnızca günlüğü kullanmayı planlıyorsanız gereklidir, ayrıca SLF4J API'sini seçtiğiniz günlük uygulamasıyla ilişkilendirecek bir SLF4J bağlaması indirin. Daha fazla bilgi için bkz. SLF4J kullanıcı kılavuzu.
Yapılandırma sınıfını ayarlama ve özelleştirme
Yapılandırma sınıfını ayarlamak için genişletmeniz AbstractCosmosConfiguration
gerekir. Daha fazla bilgi için bkz . Yapılandırma Sınıfını Ayarlama.
Azure Spring Data Azure Cosmos DB SDK'sı tarafından kullanılan temel alınanlarıCosmosAsyncClient
, veya her ikisini de GatewayConnectionConfig
sağlayarak DirectConnectionConfig
özelleştirebilirsiniz.CosmosClientBuilder
Tam örnek için yapılandırmayı özelleştirme bölümünü ziyaret edin.
Varlık kurulumu
Azure Cosmos DB'de basit bir varlığı öğe olarak tanımlayabilirsiniz. Ek açıklama ekleyerek @Container
ve kapsayıcıyla ilgili özellikleri belirterek varlıkları tanımlayabilirsiniz. Daha fazla bilgi için bkz . Varlık tanımlama.
Kapsayıcı ek açıklaması kapsayıcı adını, istek birimlerini (RU' lar), yaşam süresini belirtmeyi, otomatik ölçeklendirme aktarım hızına sahip kapsayıcılar oluşturmayı, iç içe bölüm anahtarı desteğini ve diğer kapsayıcı özelliklerini destekler.
Depo kurulumu
Azure Spring Data Azure Cosmos DB, aşağıdaki temel CRUD işlevselliğini sağlayan (zaman uyumsuz API'ler) ve CrudRepository
(eşitleme API'leri) destekler ReactiveCrudRepository
:
- kaydet
- findAll
- kimliğine göre bul
- Deleteall
- kimlikle silme
- varlığı silme
Uygulamanızın Spring Data depolarını ayarlamak için genişletebilirsiniz CosmosRepository
(eşitleme API desteği için) veya ReactiveCosmosRepository
(zaman uyumsuz API desteği için). Daha fazla bilgi için bkz . Depo oluşturma.
Azure Spring Data Azure Cosmos DB, kullanarak @Query
depolarda açıklamalı sorgular belirtmeyi destekler. Daha fazla bilgi için bkz . QueryAnnotation : Depolarda açıklamalı sorgular kullanma.
Spring Veri Ek Açıklamaları
Spring Data @Id ek açıklaması
Etki alanı sınıfındaki id
bir alanı ile eşlemenin birden çok yolu vardır. Daha fazla bilgi için spring data ID ek açıklama kodu bölümüne bakın.
Kimlik otomatik oluşturma
Azure Spring Data Azure Cosmos DB, ek açıklamayı kullanarak kimliklerin otomatik olarak oluşturulmasını @GeneratedValue destekler. Daha fazla bilgi için kimlik otomatik oluşturma bölümüne bakın.
SpEL ifadesi ve özel kapsayıcı adı
Varsayılan olarak, kapsayıcı adı kullanıcı etki alanı sınıfının sınıf adı olur. Özelleştirmek için ek açıklamayı @Container(containerName="myCustomContainerName")
etki alanı sınıfına ekleyin. Daha fazla bilgi için SpEL ifadesi ve özel kapsayıcı adı bölümüne bakın.
Özel IndexingPolicy
Varsayılan olarak, IndexingPolicy
Azure hizmeti tarafından ayarlanır. Özelleştirmek için ek açıklamayı @CosmosIndexingPolicy
etki alanı sınıfına ekleyin. Daha fazla bilgi için dizin oluşturma ilkesi bölümüne bakın.
Benzersiz anahtar ilkesi
Azure Spring Data Azure Cosmos DB, ek açıklamayı @CosmosUniqueKeyPolicy
etki alanı sınıfına ekleyerek kapsayıcıda ayarlamayı UniqueKeyPolicy
destekler. Daha fazla bilgi için benzersiz anahtar ilkesi bölümüne bakın.
Azure Cosmos DB Bölümü
Azure-spring-data-cosmos
Azure Cosmos DB bölümlerini destekler.
Etki alanı sınıfının bir alanını bölüm anahtarı alanı olarak belirtmek için, ile @PartitionKey
buna ek açıklama eklemesi gerekir.
CRUD işlemi gerçekleştirdiğinizde bölüm değerinizi belirtin.
Daha fazla bilgi için buradaki test bölümüne bakın.
İyimser Kilitleme
Azure-spring-data-cosmos
belirli kapsayıcılar için İyimser Kilitlemeyi destekler; bu da öğenin bu sırada başka bir işlem tarafından değiştirilmesi durumunda öğeye göre upserts/deletes işleminin bir özel durumla başarısız olacağı anlamına gelir. Daha fazla bilgi için iyimser kilitleme bölümüne bakın.
Spring Data özel sorgusu, sayfalanabilir ve sıralama
Azure-spring-data-cosmos
gibi bir bulma işlemi findByAFieldAndBField
gibi Spring Data özel sorgularını destekler. Ayrıca Spring Data Pageable, Slice ve Sort'ı da destekler. Daha fazla bilgi için sorgu, sayfalanabilir ve sıralama bölümüne bakın.
Spring Data Cosmos aracılığıyla Azure Cosmos DB Java SDK'sı kullanma
Azure-spring-data-cosmos
, kullanmayı Azure Cosmos DB Java SDK
destekler. Kullanıcılar Azure Cosmos DB Java SDK'sı tarafından desteklenen tüm işlemleri alabilir CosmosClient
veya CosmosAsyncClient
ApplicationContext
yürütebilir. Daha fazla bilgi için Spring Data Cosmos aracılığıyla Azure Cosmos İstemcisi'ni kullanma bölümüne bakın.
Spring Data REST
Azure-spring-data-cosmos
Spring Data REST'i destekler. Daha fazla bilgi için Azure Spring Data Azure Cosmos DB REST API bölümüne bakın.
Denetim
Azure-spring-data-cosmos
standart spring-data ek açıklamalarını kullanarak veritabanı varlıklarındaki denetim alanlarını destekler. Daha fazla bilgi için Spring Data Azure Cosmos DB denetim bölümüne bakın.
Çoklu veritabanı yapılandırması
Azure-spring-data-cosmos
, "birden çok veritabanı hesabı" ve "birden çok veritabanı içeren tek hesap" dahil olmak üzere çoklu veritabanı yapılandırmasını destekler. Eksiksiz bir kod parçacığı için çoklu veritabanı yapılandırması bölümüne bakın.
Sorun giderme
Genel
Herhangi bir hatayla karşılaşırsanız, burada bir sorun oluşturun.
Yapılabilecek yeni bir özellik veya değişiklik önermek için, hata için yaptığınız gibi bir sorun oluşturun.
İstemci Günlüğünü Etkinleştir
Azure-spring-data-cosmos
log4j ve logback gibi popüler günlük çerçevelerinde oturum açmayı destekleyen günlüğe kaydetme cephesi olarak SLF4j kullanır. Daha fazla bilgi için istemci günlüğünü etkinleştirme bölümüne bakın.
Örnekler
Eksiksiz bir örnek proje için örnek projeye bakın.
Çoklu veritabanı hesapları
Eksiksiz bir örnek proje için bkz . Çok veritabanılı örnek proje.
Çoklu veritabanı içeren tek hesap
Eksiksiz bir örnek proje için bkz . Çok veritabanılı tek hesap örnek projesi.
Sonraki adımlar
- Azure spring data Azure Cosmos DB hakkında daha fazla bilgi edinin.
- Azure Cosmos DB Hizmeti hakkında daha fazla bilgi edinin
- Bkz. Azure Spring Data Azure Cosmos DB Örnekleri
- Bkz. Azure Cosmos DB ile Spring MVC Örneği
Katkıda
Bu proje katkıları ve önerileri memnuniyetle karşılar. Çoğu katkı, Katkıda Bulunan Lisans Sözleşmesi'ni (CLA) kabul ederek bize katkınızı kullanma hakları verme hakkına sahip olduğunuzu bildirmenizi gerektirir.
Çekme isteği gönderdiğinizde, CLA botu otomatik olarak CLA sağlamanız gerekip gerekmediğini belirler ve çekme isteğini uygun şekilde dekore eder (örneğin, etiket, açıklama). Bot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Cla'mızı kullanarak bunu tüm depolarda yalnızca bir kez yapmanız gerekir.
Bu projede Microsoft Açık Kaynak Kullanım Şartları kabul edilmiştir. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya diğer sorularınız veya yorumlarınızla iletişime geçinopencode@microsoft.com.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin