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. Pomocí této úvodní sady můžete ukládat a načítat data v databázi Azure Cosmos DB pomocí Spring Data a Azure Cosmos DB pro NoSQL. Článek začíná tím, že se dozvíte, jak vytvořit účet Azure Cosmos DB na portálu Azure. Pak vám ukáže, jak použít Spring Initializr k vytvoření vlastní aplikace Spring Boot, kterou můžete použít s úvodní aplikací Spring Boot.
Azure Cosmos DB je globálně distribuovaná databázová služba, kterou můžou vývojáři používat k práci s daty prostřednictvím 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.
V části Vytvořit účet Azure Cosmos DB vyberte Azure Cosmos DB pro NoSQL.
V 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í se databáze zobrazí na řídicím panelu Azure a pod stránkami 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. Z libovolného 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. Jako alternativu můžete použít ukázku spring-cloud-azure-data-cosmos-sample v úložišti azure-spring-boot-samples . 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 Bootu jako 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
Aplikace Spring Initializr používá názvy skupin a artefaktů k vytvoření názvu balíčku. Například:
com.example.wingtiptoysdata.Verze Spring Bootu může být vyšší než verze podporovaná službou Azure Support. Po automatickém vygenerování projektu můžete ručně změnit verzi Spring Boot na nejvyšší podporovanou verzi Azure, kterou najdete v
Spring-Versions-Mapping.- Vygenerování projektu
Když zadáte možnosti, 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. Příklady:
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í kód:<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-data-cosmos</artifactId> </dependency>Poznámka
Další informace o tom, jak spravovat verze knihoven Spring Cloud Azure pomocí seznamu sestav (BOM), naleznete 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 prostředků vaší aplikace. Příklady:
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. 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. Přidejte následující řádky pro definování obecné třídy 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 následující řádky, které definují rozhraní úložiště uživatelů, které rozšiřuje výchozí
ReactiveCosmosRepositoryrozhraní: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áš pom.xml soubor. Příklady:
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 nechcete tuto aplikaci dál používat, nezapomeňte odstranit skupinu prostředků obsahující 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 Java aplikací. 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.