Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja, hogyan tárolhat adatokat az Azure SQL Database-bena Spring Data JPA használatával.
A Java Persistence API (JPA) az objektum-relációs leképezés szabványos Java API-ja.
Ebben az oktatóanyagban két hitelesítési módszert használunk: a Microsoft Entra-hitelesítést és az SQL Database-hitelesítést. A Jelszó nélküli lapon a Microsoft Entra-hitelesítés, a Jelszó lapon pedig az SQL Database-hitelesítés látható.
A Microsoft Entra-hitelesítés az Azure Database for SQL Database-hez való csatlakozás mechanizmusa a Microsoft Entra ID-ban meghatározott identitások használatával. A Microsoft Entra-hitelesítéssel központi helyen kezelheti az adatbázis felhasználói identitásait és más Microsoft-szolgáltatások, ami leegyszerűsíti az engedélykezelést.
Az SQL Database-hitelesítés az SQL Database-ben tárolt fiókokat használja. Ha jelszavakat használ a fiókok hitelesítő adataiként, ezek a hitelesítő adatok a felhasználói táblában lesznek tárolva. Mivel ezek a jelszavak az SQL Database-ben vannak tárolva, saját maga kell kezelnie a jelszavak rotálását.
Előfeltételek
Azure-előfizetés – hozzon létre egyet ingyenesen.
Java Development Kit (JDK), 8-es vagy újabb verzió.
ODBC-illesztő 17 vagy 18.
Ha nem rendelkezik ilyenrel, hozzon létre egy Azure SQL Server-példányt és
sqlservertestegy névvel ellátottdemoadatbázist. Útmutatásért tekintse meg a rövid útmutatót: Önálló adatbázis létrehozása – Azure SQL Database.Ha nem rendelkezik Spring Boot-alkalmazással, hozzon létre egy Maven-projektet a Spring Initializrrel. Mindenképpen válassza a Maven Projectet , és a Függőségek csoportban adja hozzá a Spring Web, a Spring Data JPA és az MS SQL Server-illesztőprogram függőségeit, majd válassza a Java 8-es vagy újabb verzióját.
Fontos
Jelszó nélküli kapcsolatok használatához frissítse az MS SQL Server-illesztőprogramot verzióra vagy újabb verzióra 12.1.0 , majd hozzon létre egy Microsoft Entra rendszergazdai felhasználót az Azure SQL Database-kiszolgálópéldányhoz. További információkért lásd a Microsoft Entra admin szakaszt az Oktatóanyag: Adatbázis védelme az Azure SQL Database-ben részben.
A mintaalkalmazás megtekintése
Ebben az oktatóanyagban egy mintaalkalmazást fog kódni. Ha gyorsabban szeretne haladni, ez az alkalmazás már kódolt és elérhető a következő címen https://github.com/Azure-Samples/quickstart-spring-data-jpa-sql-server: .
Tűzfalszabály konfigurálása az Azure SQL Database-kiszolgálóhoz
Az Azure SQL Database-példányok alapértelmezés szerint védettek. Tűzfallal rendelkezik, amely semmilyen bejövő kapcsolatot sem engedélyez.
Az adatbázis használatához nyissa meg a kiszolgáló tűzfalát, hogy a helyi IP-cím hozzáférhessen az adatbázis-kiszolgálóhoz. További információ : Oktatóanyag: Adatbázis védelme az Azure SQL Database-ben.
Ha windowsos számítógépen Linuxos Windows-alrendszer (WSL) keresztül csatlakozik az Azure SQL Database-kiszolgálóhoz, hozzá kell adnia a WSL-gazdagép azonosítóját a tűzfalhoz.
SQL-adatbázis létrehozása nem rendszergazdai felhasználóként, és engedély megadása
Ez a lépés létrehoz egy nem rendszergazdai felhasználót, és minden engedélyt megad az demo adatbázishoz.
A jelszó nélküli kapcsolatok használatához lásd : Oktatóanyag: Adatbázis védelme az Azure SQL Database-ben vagy a Service Connector használata Microsoft Entra-rendszergazdai felhasználó létrehozásához az Azure SQL Database-kiszolgálóhoz az alábbi lépésekben látható módon:
Először telepítse a Service Connector jelszó nélküli bővítményét az Azure CLI-hez:
az extension add --name serviceconnector-passwordless --upgradeEzután a következő paranccsal hozza létre a Microsoft Entra nem rendszergazdai felhasználót:
az connection create sql \ --resource-group <your-resource-group-name> \ --connection sql_conn \ --target-resource-group <your-resource-group-name> \ --server sqlservertest \ --database demo \ --user-account \ --query authInfo.userName \ --output tsv
A létrehozott Microsoft Entra-rendszergazda egy SQL Database-rendszergazdai felhasználó, ezért nem kell új felhasználót létrehoznia.
Fontos
Az Azure SQL Database jelszó nélküli kapcsolataihoz az MS SQL Server-illesztőt verzióra vagy újabb verzióra 12.1.0 kell frissíteni. A kapcsolati lehetőség verzióban authentication=DefaultAzureCredential és 12.1.0 verzióban authentication=ActiveDirectoryDefaultis elérhető12.2.0.
Adatok tárolása az Azure SQL Database-ből
Az Azure SQL Database-példányokkal adatokat tárolhat a Spring Cloud Azure használatával.
A Spring Cloud Azure Starter modul telepítéséhez adja hozzá a következő függőségeket a pom.xml fájlhoz:
A Spring Cloud Azure Anyagjegyzéke (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>6.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Feljegyzés
Ha Spring Boot 3.0.x-3.4.x verziót használ, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót5.23.0.Ha Spring Boot 2.x-et használ, mindenképpen állítsa be a verziót
spring-cloud-azure-dependencies.4.20.0Ezt az anyagjegyzéket (BOM) a
<dependencyManagement>pom.xml fájl szakaszában kell konfigurálni. Ez biztosítja, hogy minden Spring Cloud Azure-függőség ugyanazt a verziót használja.A BOM-hez használt verzióról további információt a Spring Cloud Azure melyik verzióját érdemes használni.
A Spring Cloud Azure Starter összetevő:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter</artifactId> </dependency>Feljegyzés
Mivel ez függőség, a
<dependencies>szakaszában kell hozzáadni. A verzió nincs itt konfigurálva, mivel a korábban hozzáadott anyagjegyzék felügyeli.
A Spring Boot konfigurálása az Azure SQL Database használatára
Az Azure SQL Database-ből a Spring Data JPA használatával történő adattároláshoz kövesse az alábbi lépéseket az alkalmazás konfigurálásához:
Konfiguráljon egy Azure SQL Database-hitelesítő adatokat az application.properties konfigurációs fájlban.
logging.level.org.hibernate.SQL=DEBUG spring.datasource.url=jdbc:sqlserver://sqlservertest.database.windows.net:1433;databaseName=demo;authentication=DefaultAzureCredential; spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2016Dialect spring.jpa.hibernate.ddl-auto=create-dropFigyelmeztetés
A
spring.jpa.hibernate.ddl-auto=create-dropkonfigurációs tulajdonság azt jelenti, hogy a Spring Boot automatikusan létrehoz egy adatbázissémát az alkalmazás indításakor, és kísérletet tesz annak törlésére, amikor az alkalmazás leáll. Ez a funkció kiválóan alkalmas tesztelésre, de ne feledje, hogy minden újraindításkor törli az adatokat, ezért éles környezetben ne használja.
Hozzon létre egy új
TodoJava-osztályt. Ez az osztály egy olyan tartománymodell, amely atodoJPA által automatikusan létrehozott táblára van leképezve. Az alábbi kód figyelmen kívül hagyja a metódusokat ésgettersasettersmetódusokat.package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Todo { public Todo() { } public Todo(String description, String details, boolean done) { this.description = description; this.details = details; this.done = done; } @Id @GeneratedValue private Long id; private String description; private String details; private boolean done; }Szerkessze az indítási osztályfájlt a következő tartalom megjelenítéséhez.
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.data.jpa.repository.JpaRepository; import java.util.stream.Collectors; import java.util.stream.Stream; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Bean ApplicationListener<ApplicationReadyEvent> basicsApplicationListener(TodoRepository repository) { return event->repository .saveAll(Stream.of("A", "B", "C").map(name->new Todo("configuration", "congratulations, you have set up correctly!", true)).collect(Collectors.toList())) .forEach(System.out::println); } } interface TodoRepository extends JpaRepository<Todo, Long> { }Tipp.
Ebben az oktatóanyagban nincsenek hitelesítési műveletek a konfigurációkban vagy a kódban. Az Azure-szolgáltatásokhoz való csatlakozáshoz azonban hitelesítés szükséges. A hitelesítés befejezéséhez az Azure Identity-et kell használnia. A Spring Cloud Azure
DefaultAzureCredentialaz Azure Identity-kódtár használatával segít a hitelesítő adatok kódmódosítások nélküli beszerzésében.DefaultAzureCredentialtöbb hitelesítési módszert támogat, és meghatározza, hogy melyik metódust használja futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (például helyi és éles környezetekben) környezetspecifikus kód implementálása nélkül. További információ: DefaultAzureCredential.A helyi fejlesztési környezetekben a hitelesítés befejezéséhez használhatja az Azure CLI-t, a Visual Studio Code-ot, a PowerShellt vagy más módszereket. További információ: Azure-hitelesítés Java-fejlesztési környezetekben. A hitelesítés azure-beli üzemeltetési környezetekben való elvégzéséhez javasoljuk a felhasználó által hozzárendelt felügyelt identitás használatát. További információ: Mik az Azure-erőforrások felügyelt identitásai?
Indítsa el az alkalmazást. A következő példához hasonló naplók láthatók:
2023-02-01 10:29:19.763 DEBUG 4392 --- [main] org.hibernate.SQL : insert into todo (description, details, done, id) values (?, ?, ?, ?) com.example.demo.Todo@1f
Üzembe helyezés az Azure Spring Appsben
Most, hogy a Spring Boot-alkalmazás helyileg fut, ideje éles környezetbe áthelyezni. Az Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások üzembe helyezését az Azure-ban kódmódosítások nélkül. A szolgáltatás kezeli a Spring-alkalmazások infrastruktúráját, hogy a fejlesztők a kódjukra összpontosíthassanak. Az Azure Spring Apps átfogó monitorozási és diagnosztikai, konfigurációkezelési, szolgáltatásfelderítési, CI/CD-integrációs, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Appsben való üzembe helyezéséről az első alkalmazás üzembe helyezése az Azure Spring Appsben című témakörben olvashat.