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 Azure SQL DatabaseSpring 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: Microsoft Entra hitelesítést és 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ó.
Microsoft Entra hitelesítés egy olyan mechanizmus, amellyel Azure SQL Database-adatbázishoz csatlakozhat a Microsoft Entra ID definiált identitások használatával. A Microsoft Entra hitelesítés használatával 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, ezeket a hitelesítő adatokat a felhasználói táblában tárolja. Mivel ezek a jelszavak az SQL Database-ben vannak tárolva, kezelnie kell a jelszavak rotálását.
Előfeltételek
Egy Azure előfizetés – ingyenes előfizetés.
Java Fejlesztői készlet (JDK), 8-es vagy újabb verzió.
ODBC-illesztő 17 vagy 18.
Ha nincs ilyenje, hozzon létre egy
sqlservertestnevű Azure SQL Server-példányt és egydemonevű adatbázist. Útmutatásért lásd a következőt: Gyorsindítás: Egyetlen 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 Project lehetőséget, majd a Dependencies területen adja hozzá a Spring Web, Spring Data JPA és MS SQL Server Illesztőprogram függőségeket, majd válassza Java 8-es vagy újabb verziót.
Fontos
Jelszó nélküli kapcsolatok használatához frissítse a MS SQL Server Illesztőprogram verzióra 12.1.0 vagy újabb verzióra, majd hozzon létre egy Microsoft Entra rendszergazdai felhasználót a Azure SQL Database kiszolgálópéldányhoz. További információért lásd a Microsoft Entra rendszergazda létrehozása részt az Oktatóanyag: Adatbázis védelme az Azure SQL Database-ben.
A mintaalkalmazás megtekintése
Ebben az oktatóanyagban egy mintaalkalmazást kódel. Ha gyorsabban szeretne haladni, az alkalmazás már kódolt, és elérhető a https://github.com/Azure-Samples/quickstart-spring-data-jpa-sql-server címen.
Tűzfalszabály konfigurálása a Azure SQL Database-kiszolgálóhoz
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ó: Tutorial: Adatbázis védelme Azure SQL Database.
Ha Windows számítógépen lévő Linuxos Windows-alrendszer (WSL) Azure SQL Database kiszolgálóhoz csatlakozik, 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:
Először telepítse a Service Connector jelszó nélküli bővítményt a Azure CLI:
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ó, így nem kell új felhasználót létrehoznia.
Fontos
Azure SQL adatbázis jelszó nélküli kapcsolataihoz frissíteni kell a MS SQL Server illesztőprogramot12.1.0 vagy újabb verzióra. A kapcsolat opció a authentication=DefaultAzureCredential verzió 12.1.0-ben, és a authentication=ActiveDirectoryDefault verzió 12.2.0-ben érhető el.
Tároljon adatokat az Azure SQL Database-ben
Egy Azure SQL Database-példánysal 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ék (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.4.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Megjegyzés
Ha a Spring Boot 4.0.x verzióját használja, állítsa a(z)
spring-cloud-azure-dependenciesverzióját erre:7.4.0.Ha a Spring Boot 3.5.x-et használja, állítsa a(z)
spring-cloud-azure-dependenciesverziót6.5.0-ra.Ha a Spring Boot 3.1.x-3.5.x verziót használja, mindenképpen állítsa be a verziót
spring-cloud-azure-dependencies-ra/c1.Ha a Spring Boot 2.x-et használja, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót4.20.0-re.Ezt az anyagjegyzéket (BOM) a
<dependencyManagement>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.Az ebben az anyagjegyzékben használt verzióra vonatkozó további információkért lásd: Melyik Spring Cloud Azure verziót érdemes használnom.
A Spring Cloud Azure Starter műalkotás:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter</artifactId> </dependency>Megjegyzés
Mivel ez az összetevő függőség, adja hozzá a
<dependencies>pom.xmlszakaszához. Ne konfigurálja a verzióját, mert a korábban hozzáadott anyagjegyzék kezeli azt.
A Spring Boot konfigurálása Azure SQL Database használatára
Ha a Spring Data JPA használatával szeretne adatokat tárolni Azure SQL Database, kövesse az alábbi lépéseket az alkalmazás konfigurálásához:
Konfigurálja 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 konfigurációs tulajdonság
spring.jpa.hibernate.ddl-auto=create-dropazt jelenti, hogy a Spring Boot automatikusan létrehoz egy adatbázissémát az alkalmazás indításakor, és megpróbálja törölni, amikor leáll. Ez a funkció kiválóan alkalmas tesztelésre, de minden újraindításkor törli az adatokat. Ne használja éles környezetben.
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 agettersés asettersmetó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 Azure Identitást kell használnia. A Spring Cloud Azure
DefaultAzureCredentialhasznál, amelyet az Azure Identitástár biztosít a hitelesítő adatok kódmódosítások nélküli beszerzéséhez.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álhat Azure CLI, Visual Studio Code, PowerShellt vagy más módszereket. További információ: Azure hitelesítés Java fejlesztési környezetekben. Ha Azure üzemeltetési környezetekben szeretné elvégezni a hitelesítést, javasoljuk, hogy használja a felhasználó által hozzárendelt felügyelt identitást. További információ: Mi 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 a Azure Spring Apps
Most, hogy a Spring Boot-alkalmazás helyben fut, ideje áthelyezni éles környezetbe. Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások Azure való üzembe helyezését 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. Azure Spring Apps teljes körű monitorozás és diagnosztika, konfigurációkezelés, szolgáltatásfelderítés, CI/CD-integráció, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Apps való üzembe helyezéséről a A Azure Spring Apps első alkalmazás üzembe helyezéséről szóló cikkben olvashat.