Aracılığıyla paylaş


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ış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 Azure Cosmos DB SDK kılavuzuna bakı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 izin vermek üzere bir bağımlılık yönetimi bölümü elde etmek üzere spring-boot-starter-parent projesinden 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?.

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ü https sertifikası otomatik olarak imzalandığından sertifikasını java güvenilen sertifika deposuna aktarmanız gerekir burada açıklanmıştır
  • (İ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

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ç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 AbstractCosmosConfigurationgenişletmeniz gerekir. Daha fazla bilgi için bkz. Kurulum Yapılandırma Sınıfı.

Azure Spring Data Azure Cosmos DB SDK'sı tarafından kullanılan temel CosmosAsyncClient'ı özelleştirmek için DirectConnectionConfig veya GatewayConnectionConfig ya da ikisini birden verebilir ve bunları CosmosClientBuilder'e iletebilirsiniz. Tam örnek içinyapılandırmayı özelleştirme bölümünü ziyaret edin.

Varlık kurulumu

Azure Cosmos DB'de basit bir varlığı öğe olarak tanımlayabilirsiniz. @Container ek açıklamasını ekleyerek 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), yaşam süresi, otomatik ölçeklendirme aktarım hızına sahip kapsayıcılar oluşturmayı iç içe bölüm anahtarı desteğive diğer kapsayıcı özelliklerini belirtmeyi 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, @Querykullanarak depolarda ek 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

Domain sınıfındaki bir alanı idile eşlemenin çeşitli yolları mevcuttur. 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 olarak 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ı olur. Özelleştirmek için, @Container(containerName="myCustomContainerName") açıklamasını etki 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, IndexingPolicy Azure hizmeti tarafından ayarlanır. Etki alanı sınıfını özelleştirmek için @CosmosIndexingPolicy açıklamasını ekleyin. Daha fazla bilgi içindizin oluşturma ilkesi bölümüne bakın.

Benzersiz anahtar ilkesi

Azure Spring Data Azure Cosmos DB, etki alanı sınıfına anotasyon UniqueKeyPolicy'i ekleyerek kapsayıcıya @CosmosUniqueKeyPolicy ayarı yapılmasını 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.

Etki alanı sınıfının bir alanını bölüm anahtarı alanı olarak belirtmek için, @PartitionKeyile ek açıklama 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 İyimser Kilitlemeyi destekler. Bu, öğeye göre güncelleme/ekleme veya silme işlemlerinin, öğenin bu sırada başka bir işlem tarafından değiştirilmesi durumunda bir özel durumla başarısız olacağı 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, Spring Data özel sorgularınıdestekler, örneğin findByAFieldAndBFieldgibi bir bulma işlemi. Ayrıca Spring Data Pageable, Slice ve Sortdestekler. Daha fazla bilgi için sorgusuna, sayfalanabilir ve sıralama bölümü'e bakın.

Spring Data Cosmos aracılığıyla Azure Cosmos DB Java SDK'sı kullanma

Azure-spring-data-cosmos, Azure Cosmos DB Java SDKkullanmayı destekler. Kullanıcılar CosmosClient aracılığıyla CosmosAsyncClient veya ApplicationContext bean alabilir ve Azure Cosmos DB Java SDK'sı tarafından desteklenen tüm işlemleri yürütebilir. 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 ek açıklamalarını kullanarak veritabanı varlıkları üzerinde 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ı 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ş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,Çok veritabanı örnek projesine bakın.

Çoklu veritabanı ile tek hesap

Eksiksiz bir örnek proje için bkz. Çoklu veritabanı entegreli tek hesap örnek projesi.

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.