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 JDBC használatával.
JDBC a hagyományos relációs adatbázisokhoz való csatlakozáshoz használt szabványos Java API.
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, és a Függőségek csoportban adja hozzá a Spring Web, a Spring Data JDBC és az MS SQL Server Illesztőprogram-függőségeket. Ezután válassza Java 8- vagy újabb verziót.
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-jdbc-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.
Adatok tárolása 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>Feljegyzés
Ha a Spring Boot 4.0.x-et használja, állítsa a
spring-cloud-azure-dependenciesverziót7.4.0értékre.Ha a Spring Boot 3.5.x-et használja, állítsa a
spring-cloud-azure-dependenciesverziót6.5.0értékre.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 anyagjegyzékhez használt verzióval kapcsolatos további információkért lásd: Melyik verzióját a Spring Cloud Azure-nak érdemes használnom?.
A Spring Cloud Azure Starter műalkotás:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter</artifactId> </dependency>Feljegyzé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 JDBC 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áljon egy Azure SQL Database hitelesítő adatot az application.properties konfigurációs fájlban.
logging.level.org.springframework.jdbc.core=DEBUG spring.datasource.url=jdbc:sqlserver://sqlservertest.database.windows.net:1433;databaseName=demo;authentication=DefaultAzureCredential; spring.sql.init.mode=alwaysFigyelmeztetés
A konfigurációs tulajdonság
spring.sql.init.mode=alwaysazt jelenti, hogy a Spring Boot automatikusan létrehoz egy adatbázissémát a kiszolgáló minden indításakor létrehozott schema.sql fájl használatával. Ez a funkció kiválóan alkalmas tesztelésre, de minden újraindításkor törli az adatokat. Ne használja ezt a funkciót éles környezetben.
Hozza létre az src/main/resources/schema.sql konfigurációs fájlt az adatbázisséma konfigurálásához, majd adja hozzá a következő tartalmat.
DROP TABLE IF EXISTS todo; CREATE TABLE todo (id INT IDENTITY PRIMARY KEY, description VARCHAR(255), details VARCHAR(4096), done BIT);
Hozzon létre egy új
TodoJava osztályt. Ez az osztály egy olyan tartománymodell, amely atodoSpring Boot által automatikusan létrehozott táblára van leképezve. Az alábbi kód figyelmen kívül hagyja agettersés asettersmetódusokat.import org.springframework.data.annotation.Id; public class Todo { public Todo() { } public Todo(String description, String details, boolean done) { this.description = description; this.details = details; this.done = done; } @Id 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.repository.CrudRepository; 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)).toList()) .forEach(System.out::println); } } interface TodoRepository extends CrudRepository<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. Az alkalmazás adatokat tárol az adatbázisba. A következő példához hasonló naplók láthatók:
2023-02-01 10:22:36.701 DEBUG 7948 --- [main] o.s.jdbc.core.JdbcTemplate : Executing prepared SQL statement [INSERT INTO todo (description, details, done) VALUES (?, ?, ?)] com.example.demo.Todo@4bdb04c8
Üzembe helyezés a Azure Spring Apps
Most már, hogy a Spring Boot-alkalmazás helyben fut, itt az ideje áthelyezni a termelési 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.