Azure Cosmos DB geliştirme kılavuzu

Azure Cosmos DB için Azure Spring Data, NoSQL için Azure Cosmos DBiç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ışmak için kullanabileceği genel olarak dağıtılmış bir veritabanı hizmetidir.

Bu kılavuzda Spring Data Azure Cosmos DB SDK Azure kavramları, desteklenen özellikler, sorun giderme ve bilinen sorunlar açıklanmaktadır. Bu kavramlar ve kod örnekleri hakkında daha fazla bilgi için Azure Cosmos DB SDK için Spring Data Beni Oku dosyasına göz atın.

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 Spring Boot Destek İlkesi'ne bkz. Maven kullanıcıları, Spring'in bağımlılıkların sürümlerini yönetmesine olanak tanıyan bir bağımlılık yönetimi bölümü almak için 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ümleri 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 ve Spring Cloud'un birden çok sürümünü destekler. Spring Boot ve Spring Cloud ile hangi Azure Spring Data sürümünün Azure Cosmos DB kullanılacağı 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?

Kullanmaya başlama

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ı. Hesabınız yoksaücretsiz hesaba kaydolabilirsiniz. Alternatif olarak, geliştirme ve test için Azure Cosmos DB Öykünücüsü kullanabilirsiniz. Öykünücü otomatik olarak imzalanan bir HTTPS sertifikası kullandığından, sertifikasını burada açıklandığı gibi güvenilen Java sertifika deposuna aktarmanız gerekir.
  • (İsteğe bağlı) SLF4J bir loglama arayüzüdür.
  • (İsteğe bağlı) SLF4J bağlantısı, belirli bir günlük çerçevesini SLF4J ile ilişkilendirmek için kullanılır.
  • (İsteğe bağlı) Maven

Yalnızca günlük kaydı kullanmayı planlıyorsanız SLF4J'ye ihtiyacınız vardır. Ayrıca, SLF4J API’sini tercih ettiğiniz günlükleme gerçek­lemesiyle bağlayan bir SLF4J bağlayıcısı da indirin. Daha fazla bilgi içinSLF4J kullanıcı kılavuzuna bakın.

Yapılandırma sınıfını ayarlama ve özelleştirme

Yapılandırma sınıfını ayarlamak için AbstractCosmosConfiguration sınıfını genişletin. Daha fazla bilgi için bkz. Kurulum Yapılandırma Sınıfı.

Azure Spring Data Azure Cosmos DB SDK tarafından kullanılan temel CosmosAsyncClient’ı, GatewayConnectionConfig, DirectConnectionConfig veya her ikisini birden sağlayıp bunları CosmosClientBuilder’e geçirerek özelleştirebilirsiniz. Tam bir örnek için yapılandırmayı özelleştirme bölümünü ziyaret edin.

Varlık kurulumu

Basit bir varlığı Azure Cosmos DB öğe olarak tanımlayabilirsiniz. @Container ek açıklamasını ekleyip kapsayıcıyla ilgili özellikleri belirterek varlıkları tanımlayın. Daha fazla bilgi için bkz. Varlık tanımlama.

Kapsayıcı ek açıklaması; kapsayıcı adının, istek birimlerinin (RUs), yaşam süresinin, otomatik ölçeklendirme aktarım hızına sahip kapsayıcılar oluşturmanın, iç içe bölüm anahtarı desteğinin ve diğer kapsayıcı özelliklerinin belirtilmesini destekler.

Depo kurulumu

Azure Spring Data Azure Cosmos DB, aşağıdaki temel CRUD işlevselliğini sağlayan ReactiveCrudRepository (zaman uyumsuz API'ler) ve CrudRepository (eşitleme API'leri) destekler:

  • kurtarmak
  • tümünüBul
  • kimliğine göre bul
  • hepsini sil
  • ID ile sil
  • varlığı sil

Uygulamanız için Spring Data depoları ayarlamak üzere CosmosRepository (eşitleme API desteği için) veya ReactiveCosmosRepository (zaman uyumsuz API desteği için) genişletebilirsiniz. Daha fazla bilgi için bkz. Depo oluşturma.

Azure Spring Data Azure Cosmos DB, depolarda @Query kullanarak 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 anotasyonu

Bir etki alanı sınıfındaki bir alanı id ile birden çok şekilde eşleyebilirsiniz. Daha fazla bilgi için spring data ID ek açıklama kodu bölümükısmına bakın.

Kimlik otomatik oluşturma

Azure Spring Data Azure Cosmos DB, @GeneratedValue ek açıklamasını kullanarak kimliklerin otomatik oluşturulmasını destekler. Daha fazla bilgi için kimliği otomatik oluşturmabö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ıdır. Kapsayıcı adını özelleştirmek için @Container(containerName="myCustomContainerName") ek açıklamasını alan sınıfına ekleyin. Daha fazla bilgi için SpEL ifadesi ve özel kapsayıcı adı bölümükısmına bakın.

Özel Indexleme Politikası

Varsayılan olarak Azure hizmeti, IndexingPolicy ayarlar. IndexingPolicy öğesini özelleştirmek için, @CosmosIndexingPolicy ek açıklamasını etki alanı sınıfına ekleyin. Daha fazla bilgi içindizin oluşturma ilkesi bölümüne bakın.

Benzersiz anahtar ilkesi

Azure Spring Data Azure Cosmos DB, @CosmosUniqueKeyPolicy ek açıklamasını etki alanı sınıfına ekleyerek kapsayıcıda UniqueKeyPolicy ayarlamayı destekler. Daha fazla bilgi için benzersiz anahtar ilkesi bölümünebakın.

Azure Cosmos DB Bölümleme

Azure-spring-data-cosmos Azure Cosmos DBbölümlerini destekler.

Bir etki alanı sınıfının bir alanını bölümleme anahtarı alanı olarak belirtmek için, bu alana @PartitionKey ek açıklamasını ekleyin.

CRUD işlemi gerçekleştirdiğinizde bölüm değerinizi belirtin.

Daha fazla bilgi için buradakitest bölümüne bakın.

İyimser Kilitleme

Azure-spring-data-cosmos belirli kapsayıcılar için iyimser kilitlemeyi destekler. Bu destek, başka bir işlem öğeyi değiştirirse öğe bazında yapılan upsert ve silme işlemlerinin bir özel durum oluşarak başarısız olması anlamına gelir. Daha fazla bilgi içiniyimser kilitleme bölümüne bakın.

Spring Data özel sorgusu, sayfalama ve sıralama

Azure-spring-data-cosmos, gibi bir bulma işlemi de dahil olmak üzere findByAFieldAndBField 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 , 'nin Azure Cosmos DB Java SDKkullanılmasını destekler. CosmosClient aracılığıyla bir ApplicationContext veya CosmosAsyncClient bean’i edinebilir ve Azure Cosmos DB Java SDK tarafından desteklenen tüm işlemleri gerçekleştirebilirsiniz. Daha fazla bilgi için Spring Data Cosmos aracılığıyla Azure Cosmos İstemcisi'ni kullanma bölümü kısmınabakın.

Spring Data REST

Azure-spring-data-cosmos Spring Data RESTdestekler. Daha fazla bilgi içinAzure Spring Data Azure Cosmos DB REST API'bölümüne bakın.

Denetim

Azure-spring-data-cosmos standart Spring Data anotasyonlarını kullanarak veritabanı varlıklarında denetim alanlarını destekler. Daha fazla bilgi içinSpring 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ıolan 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

Bir hatayla karşılaşırsanız , burada bir sorun oluşturun.

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ştirmebölümüne bakın.

Örnekler

Eksiksiz bir örnek proje için bkz. örnek proje.

Çok veritabanılı hesaplar

Eksiksiz bir örnek proje için birden çok veritabanı örnek projesine bakın.

Çoklu veritabanı ile tek hesap

Eksiksiz bir örnek proje için birden çok veritabanı örnek projesine sahip tek bir hesaba bakın.

Sonraki adımlar

Katkıda Bulunmak

Bu proje katkıları ve önerileri memnuniyetle karşılar. Katkıların çoğu, Katkıda Bulunan Lisans Sözleşmesi'ni (CLA) kabul etmenizi bize katkınızı kullanma haklarını verme hakkına sahip olduğunuzu bildirmenizi ve gerçekten bunu yapmanızı gerektirir.

Çekme isteği (pull request) gönderdiğinizde, CLA-bot otomatik olarak CLA sağlamanız gerekip gerekmediğini belirler ve çekme isteğini uygun şekilde düzenler, örneğin etiket ekler ve yorumlar. Bot tarafından sağlanan yönergeleri izlemeniz yeterlidir. CLA'mizi kullanarak tüm depolarda bunu yalnızca bir defa yapmanız gerekecek.

Bu proje, Microsoft Açık Kaynak Kullanım Kurallarıbenimsemiştir. Daha fazla bilgi için Davranış Kuralları SSS bölümüne bakın veya diğer sorularınız ya da yorumlarınız için opencode@microsoft.com ile iletişime geçin.