Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak do aplikace přidat Spring Cloud Azure Starter for Spring Data for Azure Cosmos DB. Tato úvodní sada umožňuje ukládat data do databáze Azure Cosmos DB a načítat je z databáze Azure Cosmos DB pomocí Spring Data a Azure Cosmos DB for NoSQL. Tento článek začíná tím, že vám ukáže, jak vytvořit službu Azure Cosmos DB prostřednictvím webu Azure Portal. V tomto článku se dozvíte, jak pomocí aplikace Spring Initializr vytvořit vlastní aplikaci Spring Boot, kterou můžete použít s úvodní aplikací Spring Boot.
Azure Cosmos DB je globálně distribuovaná databázová služba, která vývojářům umožňuje pracovat s daty pomocí různých standardních rozhraní API, jako jsou SQL, MongoDB, Graph a Table API. Úvodní sada Spring Boot od Microsoftu umožňuje vývojářům používat aplikace Spring Boot, které se snadno integrují se službou Azure Cosmos DB for NoSQL.
Požadavky
Předplatné Azure – vytvořit si ho zdarma.
Java Development Kit (JDK), verze 8 nebo vyšší.
Vytvoření služby Azure Cosmos DB pomocí webu Azure Portal
K vytvoření instance služby Azure Cosmos DB použijte následující postup:
Přejděte do Azure portalu a vyberte Vytvořit prostředek.
Vyberte Databázea pak vyberte Azure Cosmos DB.
Na obrazovce Vytvořit účet Azure Cosmos DB vyberte možnost Azure Cosmos DB pro NoSQL.
Na stránce azure Cosmos DB zadejte následující informace:
- Zvolte předplatné
, které chcete použít pro vaši databázi. - Určete, jestli chcete vytvořit novou skupinu prostředků pro vaši databázi, nebo zvolit existující skupinu prostředků.
- Zadejte jedinečný název účtu , který použijete jako identifikátor URI pro vaši databázi. Příklad: contosoaccounttest.
- Zadejte umístění pro vaši databázi.
- Vyberte Aplikovat slevu pro úroveň zdarma, pokud chcete vytvořit účet pouze pro demonstrační účely.
- Ponechte zbývající výchozí možnosti a nastavení tak, jak jsou.
- Zvolte předplatné
Vyberte Zkontrolovat a vytvořit, zkontrolujte vaše specifikace a vyberte Vytvořit.
Po vytvoření databáze je uvedena na řídicím panelu Azure a na stránce Všechny prostředky a Azure Cosmos DB. Pokud chcete vytvořit databázi a kontejner pro nově vytvořenou službu Azure Cosmos DB, přečtěte si část Přidání databáze a kontejneru rychlého startu : Vytvoření účtu služby Azure Cosmos DB, databáze, kontejneru a položek z webu Azure Portal. Pro každé z těchto umístění můžete vybrat databázi a otevřít stránku vlastností vaší mezipaměti.
Když se zobrazí stránka vlastností pro vaši databázi, vyberte možnost Klíče a zkopírujte URI a případný přístupový klíč pro vaši databázi. Tyto hodnoty použijete v aplikaci Spring Boot.
Důležitý
V nově vytvořené službě Azure Cosmos DB přiřaďte k účtu Azure, který právě používáte, roli Owner. Další informace najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.
Vytvoření aplikace Spring Boot pomocí aplikace Spring Initializr
Pomocí následujících kroků vytvořte nový projekt aplikace Spring Boot s podporou Azure. Alternativně můžete použít ukázku spring-cloud-azure-data-cosmos-sample v azure-spring-boot-samples repozitáři. Pak můžete přeskočit přímo na Sestavení a otestování aplikace.
Přejděte na https://start.spring.io/.
Zadejte následující možnosti:
- Vygenerování projektu
Maven pomocíJavy. - Zadejte verzi
Spring Boot pro 2.7.11 . - Zadejte názvy skupiny a artefaktů pro vaši aplikaci.
- Jako verzi Javy vyberte 17.
- Do závislostí přidejte Azure Support.
Poznámka
Spring Initializr používá k vytvoření názvu balíčku názvy skupiny
a Artifact ; Například:com.example.wingtiptoysdata .Verze Spring Bootu může být vyšší než verze podporovaná podporou Azure. Po automatickém vygenerování projektu můžete ručně změnit verzi Spring Boot na nejnovější verzi podporovanou Azure, kterou najdete v Mapování verzí Spring.
- Vygenerování projektu
Po zadání výše uvedených možností vyberte GENEROVAT.
Jakmile budete vyzváni, stáhněte projekt do složky na místním počítači a extrahujte soubory.
Vaše jednoduchá aplikace Spring Boot je teď připravená k úpravám.
Konfigurace aplikace Spring Boot pro použití úvodní sady Azure Spring Boot
Vyhledejte soubor pom.xml v adresáři vaší aplikace; například:
C:\SpringBoot\wingtiptoysdata\pom.xml
-nebo-
/users/example/home/wingtiptoysdata/pom.xml
Otevřete soubor pom.xml v textovém editoru a do elementu
<dependencies>přidejte následující:<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-data-cosmos</artifactId> </dependency>Poznámka
Další informace o správě verzí knihovny Azure Spring Cloud pomocí kusovníku najdete v části Začínáme příručky pro vývojáře Spring Cloud Azure.
Uložte a zavřete soubor pom.xml.
Konfigurace aplikace Spring Boot pro použití služby Azure Cosmos DB
Vyhledejte soubor application.properties v adresáři resources vaší aplikace; například:
C:\SpringBoot\wingtiptoysdata\src\main\resources\application.properties
-nebo-
/users/example/home/wingtiptoysdata/src/main/resources/application.properties
Otevřete soubor application.properties v textovém editoru a přidejte do souboru následující řádky a nahraďte ukázkové hodnoty odpovídajícími vlastnostmi pro vaši databázi:
# Specify the DNS URI of your Azure Cosmos DB. spring.cloud.azure.cosmos.endpoint=https://contosoaccounttest.documents.azure.com:443/ spring.cloud.azure.cosmos.key=your-cosmosdb-account-key # Specify the name of your database. spring.cloud.azure.cosmos.database=contosoaccounttest spring.cloud.azure.cosmos.populate-query-metrics=trueUložte a zavřete soubor application.properties.
Přidání ukázkového kódu pro implementaci základních databázových funkcí
V této části vytvoříte dvě třídy Javy pro ukládání uživatelských dat. Potom upravíte hlavní třídu aplikace tak, aby vytvořila instanci třídy User a uložila ji do databáze.
Definování základní třídy pro ukládání uživatelských dat
Vytvořte nový soubor s názvem User.java ve stejném adresáři jako hlavní soubor Java aplikace.
Otevřete soubor User.java v textovém editoru a přidejte do souboru následující řádky, které definují obecnou třídu uživatele, která ukládá a načítá hodnoty v databázi:
package com.example.wingtiptoysdata; import com.azure.spring.data.cosmos.core.mapping.Container; import com.azure.spring.data.cosmos.core.mapping.PartitionKey; import org.springframework.data.annotation.Id; @Container(containerName = "mycollection") public class User { @Id private String id; private String firstName; @PartitionKey private String lastName; private String address; public User() { } public User(String id, String firstName, String lastName, String address) { this.id = id; this.firstName = firstName; this.lastName = lastName; this.address = address; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return String.format("%s %s, %s", firstName, lastName, address); } }Uložte a zavřete soubor User.java.
Definování rozhraní úložiště dat
Vytvořte nový soubor s názvem UserRepository.java ve stejném adresáři jako hlavní soubor Java aplikace.
Otevřete soubor UserRepository.java v textovém editoru a přidejte do souboru následující řádky, které definují rozhraní úložiště uživatelů, které rozšiřuje výchozí rozhraní
ReactiveCosmosRepository:package com.example.wingtiptoysdata; import com.azure.spring.data.cosmos.repository.ReactiveCosmosRepository; import org.springframework.stereotype.Repository; import reactor.core.publisher.Flux; @Repository public interface UserRepository extends ReactiveCosmosRepository<User, String> { Flux<User> findByFirstName(String firstName); }Rozhraní
ReactiveCosmosRepositorynahrazuje rozhraníDocumentDbRepositoryz předchozí verze úvodní sady. Nové rozhraní poskytuje synchronní a reaktivní rozhraní API pro základní operace ukládání, odstraňování a hledání.Uložte a zavřete soubor UserRepository.java.
Úprava hlavní třídy aplikace
V adresáři balíčku vaší aplikace vyhledejte hlavní soubor Java aplikace, například:
C:\SpringBoot\wingtiptoysdata\src\main\java\com\example\wingtiptoysdata\WingtiptoysdataApplication.java-nebo-
/users/example/home/wingtiptoysdata/src/main/java/com/example/wingtiptoysdata/WingtiptoysdataApplication.javaOtevřete hlavní soubor Java aplikace v textovém editoru a přidejte do souboru následující řádky:
package com.example.wingtiptoysdata; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.util.Assert; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.Optional; @SpringBootApplication public class WingtiptoysdataApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(WingtiptoysdataApplication.class); @Autowired private UserRepository repository; public static void main(String[] args) { SpringApplication.run(WingtiptoysdataApplication.class, args); } public void run(String... var1) { this.repository.deleteAll().block(); LOGGER.info("Deleted all data in container."); final User testUser = new User("testId", "testFirstName", "testLastName", "test address line one"); // Save the User class to Azure Cosmos DB database. final Mono<User> saveUserMono = repository.save(testUser); final Flux<User> firstNameUserFlux = repository.findByFirstName("testFirstName"); // Nothing happens until we subscribe to these Monos. // findById won't return the user as user isn't present. final Mono<User> findByIdMono = repository.findById(testUser.getId()); final User findByIdUser = findByIdMono.block(); Assert.isNull(findByIdUser, "User must be null"); final User savedUser = saveUserMono.block(); Assert.state(savedUser != null, "Saved user must not be null"); Assert.state(savedUser.getFirstName().equals(testUser.getFirstName()), "Saved user first name doesn't match"); firstNameUserFlux.collectList().block(); final Optional<User> optionalUserResult = repository.findById(testUser.getId()).blockOptional(); Assert.isTrue(optionalUserResult.isPresent(), "Cannot find user."); final User result = optionalUserResult.get(); Assert.state(result.getFirstName().equals(testUser.getFirstName()), "query result firstName doesn't match!"); Assert.state(result.getLastName().equals(testUser.getLastName()), "query result lastName doesn't match!"); LOGGER.info("findOne in User collection get result: {}", result.toString()); } }Uložte a zavřete hlavní soubor Java aplikace.
Sestavení a otestování aplikace
Otevřete příkazový řádek a přejděte do složky, ve které se nachází váš soubor pom.xml; například:
cd C:\SpringBoot\wingtiptoysdata-nebo-
cd /users/example/home/wingtiptoysdataK sestavení a spuštění aplikace použijte následující příkaz:
./mvnw cleanTento příkaz spustí aplikaci automaticky jako součást testovací fáze. Můžete také použít:
./mvnw spring-boot:runPo nějakém výstupu sestavení a testu se v okně konzoly zobrazí zpráva podobná následujícímu příkladu:
INFO 1365 --- [ main] c.e.w.WingtiptoysdataApplication : Deleted all data in container. ... (omitting connection and diagnostics output) ... INFO 1365 --- [ main] c.e.w.WingtiptoysdataApplication : findOne in User collection get result: testFirstName testLastName, test address line oneTyto výstupní zprávy ukazují, že se data úspěšně uložila do služby Azure Cosmos DB a pak se znovu načetla.
Vyčištění zdrojů
Pokud tuto aplikaci nebudete dál používat, nezapomeňte odstranit skupinu prostředků obsahující službu Azure Cosmos DB, kterou jste vytvořili dříve. Skupinu prostředků můžete odstranit z webu Azure Portal.
Další kroky
Další informace o Springu a Azure najdete v centru dokumentace Spring on Azure.
Další zdroje informací
Další informace o používání služby Azure Cosmos DB a Javy najdete v následujících článcích:
Další informace o používání aplikací Spring Boot v Azure najdete v následujících článcích:
[Spring Cloud Azure Starter pro Spring Data Azure Cosmos DB]
nasazení aplikace Spring Boot do Linuxu ve službě Azure App Service
spuštění aplikace Spring Boot v clusteru Kubernetes ve službě Azure Container Service
Další informace o používání Azure s Javou najdete v Azure pro vývojáře v Javě a Práce s Azure DevOps a javou.
Spring Framework je opensourcové řešení, které vývojářům v Javě pomáhá vytvářet aplikace na podnikové úrovni. Jedním z nejoblíbenějších projektů, které jsou založené na této platformě, je Spring Boot, který poskytuje zjednodušený přístup k vytváření samostatných aplikací v Javě. Aby vývojáři mohli začít používat Spring Boot, je k dispozici několik ukázkových balíčků Spring Boot na https://github.com/spring-guides/. Kromě výběru ze seznamu základních projektů Spring Boot vám Spring Initializr pomůže vývojářům začít vytvářet vlastní aplikace Spring Boot.