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 AbstractCosmosConfigurationgerekir. 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 @Querydepolarda 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 idbir 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-cosmosAzure 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 @PartitionKeybuna 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-cosmosgibi bir bulma işlemi findByAFieldAndBFieldgibi 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 SDKdestekler. Kullanıcılar Azure Cosmos DB Java SDK'sı tarafından desteklenen tüm işlemleri alabilir CosmosClient veya CosmosAsyncClientApplicationContext 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-cosmosSpring 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

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.

Impressions