Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara menambahkan Spring Cloud Azure Starter for Spring Data untuk Azure Cosmos DB ke aplikasi kustom. Starter ini memungkinkan Anda menyimpan data dan mengambil data dari database Azure Cosmos DB Anda dengan menggunakan Spring Data dan Azure Cosmos DB for NoSQL. Artikel ini dimulai dengan menunjukkan kepada Anda cara membuat Azure Cosmos DB melalui portal Microsoft Azure. Kemudian, artikel ini menunjukkan kepada Anda cara menggunakan Spring Initializr untuk membuat aplikasi Spring Boot kustom yang dapat Anda gunakan dengan Spring Boot Starter.
Azure Cosmos DB adalah layanan database terdistribusi secara global yang memungkinkan pengembang untuk bekerja dengan data menggunakan berbagai API standar, seperti SQL, MongoDB, Graph, dan Table API. Spring Boot Starter Microsoft memungkinkan pengembang untuk menggunakan aplikasi Spring Boot yang dengan mudah diintegrasikan dengan Azure Cosmos DB untuk NoSQL.
Prasyarat
Langganan Azure - buat langganan secara gratis.
Java Development Kit (JDK), versi 8 atau yang lebih tinggi.
Membuat Azure Cosmos DB dengan menggunakan portal Microsoft Azure
Gunakan langkah-langkah berikut untuk membuat instans Azure Cosmos DB:
Akses portal Azure dan pilih Buat sumber daya.
Pilih database , lalu pilih Azure Cosmos DB.
Pada layar Buat akun Azure Cosmos DB, pilih Azure Cosmos DB untuk NoSQL.
Pada halaman
Azure Cosmos DB, masukkan informasi berikut: - Pilih langganan ingin Anda gunakan untuk database Anda.
- Tentukan apakah akan membuat grup sumber daya baru untuk database Anda, atau memilih grup sumber daya yang sudah ada.
- Masukkan nama akun unik, yang Anda gunakan sebagai URI untuk database Anda. Misalnya: contosoaccounttest.
- Tentukan Lokasi untuk database Anda.
- Pilih Terapkan Diskon Tingkat Gratis jika Anda ingin membuat akun hanya untuk tujuan demonstrasi.
- Biarkan sisa opsi dan pengaturan default apa adanya.
Pilih Tinjau dan buat, tinjau kembali spesifikasi Anda, dan pilih Buat.
Saat database Anda dibuat, database tersebut tercantum di Dasbor AzureAnda, dan di bawah halaman Semua Sumber Daya dan Azure Cosmos DB. Untuk membuat database dan kontainer untuk Azure Cosmos DB yang baru dibuat, lihat bagian Menambahkan database dan kontainerMulai Cepat: Membuat akun, database, kontainer, dan item Azure Cosmos DB dari portal Microsoft Azure. Anda bisa memilih database Anda untuk salah satu lokasi tersebut untuk membuka halaman properti untuk cache Anda.
Saat halaman properti untuk database Anda ditampilkan, pilih kunci dan salin URI Anda dan kunci akses untuk database Anda. Anda menggunakan nilai-nilai ini di aplikasi Spring Boot Anda.
Penting
Di Azure Cosmos DB yang baru dibuat, tetapkan peran Owner ke akun Azure yang saat ini Anda gunakan. Untuk informasi selengkapnya, lihat Menetapkan peran Azure menggunakan portal Microsoft Azure.
Membuat aplikasi Spring Boot dengan Spring Initializr
Gunakan langkah-langkah berikut untuk membuat proyek aplikasi Spring Boot baru dengan dukungan Azure. Sebagai alternatif, Anda dapat menggunakan sampel
Telusuri ke https://start.spring.io/.
Tentukan opsi berikut:
- Hasilkan proyek Maven dengan Java .
- Tentukan versi Spring Boot
Anda menjadi 2.7.11 . - Tentukan Grup
dan nama Artefak untuk aplikasi Anda. - Pilih 17 untuk versi Java.
- Tambahkan Dukungan Azure
dalam dependensi.
Nota
Spring Initializr menggunakan Grup dan Artefak untuk membuat nama paket; misalnya: com.example.wingtiptoysdata.
Versi Spring Boot mungkin lebih tinggi dari versi yang didukung oleh Dukungan Azure. Setelah proyek dibuat secara otomatis, Anda dapat mengubah versi Spring Boot secara manual ke versi tertinggi yang didukung oleh Azure, yang dapat Anda temukan di Spring-Versions-Mapping.
Ketika Anda telah menentukan opsi yang tercantum sebelumnya, pilih GENERATE.
Ketika diminta, unduh proyek ke jalur di komputer lokal Anda dan ekstrak file.
Aplikasi Spring Boot sederhana Anda sekarang siap untuk diedit.
Mengonfigurasi aplikasi Spring Boot Anda untuk menggunakan Azure Spring Boot Starter
Temukan file pom.xml di direktori aplikasi Anda; misalnya:
C:\SpringBoot\wingtiptoysdata\pom.xml
-atau-
/users/example/home/wingtiptoysdata/pom.xml
Buka file pom.xml di editor teks, dan tambahkan yang berikut ini ke elemen
<dependencies>:<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-data-cosmos</artifactId> </dependency>Nota
Untuk informasi selengkapnya tentang cara mengelola versi pustaka Spring Cloud Azure dengan menggunakan tagihan materi (BOM), lihat bagian Memulai panduan pengembang Spring Cloud Azure.
Simpan dan tutup file pom.xml.
Mengonfigurasi aplikasi Spring Boot Anda untuk menggunakan Azure Cosmos DB Anda
Temukan file application.properties
di direktori sumber daya aplikasi Anda; misalnya: C:\SpringBoot\wingtiptoysdata\src\main\resources\application.properties
-atau-
/users/example/home/wingtiptoysdata/src/main/resources/application.properties
Buka file
application.properties di editor teks, dan tambahkan baris berikut ke file, dan ganti nilai sampel dengan properti yang sesuai untuk database Anda: # 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=trueSimpan dan tutup file application.properties
.
Menambahkan kode sampel untuk menerapkan fungsionalitas database dasar
Di bagian ini, Anda membuat dua kelas Java untuk menyimpan data pengguna. Kemudian, Anda memodifikasi kelas aplikasi utama untuk membuat instans kelas User dan menyimpannya ke database Anda.
Menentukan kelas dasar untuk menyimpan data pengguna
Buat file baru bernama User.java di direktori yang sama dengan file Java aplikasi utama Anda.
Buka file User.java di editor teks, dan tambahkan baris berikut ke file untuk menentukan kelas pengguna generik yang menyimpan dan mengambil nilai dalam database Anda:
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); } }Simpan dan tutup file User.java.
Mendefinisikan antarmuka repositori data
Buat file baru bernama UserRepository.java di direktori yang sama dengan file Java aplikasi utama Anda.
Buka file UserRepository.java di editor teks, dan tambahkan baris berikut ke file untuk menentukan antarmuka repositori pengguna yang memperluas antarmuka
ReactiveCosmosRepositorydefault: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); }Antarmuka
ReactiveCosmosRepositorymenggantikan antarmukaDocumentDbRepositorydari versi starter sebelumnya. Antarmuka baru menyediakan API sinkron dan reaktif untuk operasi simpan, hapus, dan temukan dasar.Simpan dan tutup file UserRepository.java.
Mengubah kelas aplikasi utama
Temukan file Java aplikasi utama di direktori paket aplikasi Anda, misalnya:
C:\SpringBoot\wingtiptoysdata\src\main\java\com\example\wingtiptoysdata\WingtiptoysdataApplication.java-atau-
/users/example/home/wingtiptoysdata/src/main/java/com/example/wingtiptoysdata/WingtiptoysdataApplication.javaBuka file Java aplikasi utama di editor teks, dan tambahkan baris berikut ke file:
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()); } }Simpan dan tutup file Java aplikasi utama.
Membuat dan menguji aplikasi Anda
Buka perintah dan navigasi ke folder tempat file pom.xml Anda berada; misalnya:
cd C:\SpringBoot\wingtiptoysdata-atau-
cd /users/example/home/wingtiptoysdataGunakan perintah berikut untuk membangun dan menjalankan aplikasi Anda:
./mvnw cleanPerintah ini menjalankan aplikasi secara otomatis sebagai bagian dari fase pengujian. Anda juga dapat menggunakan:
./mvnw spring-boot:runSetelah beberapa output build dan pengujian, jendela konsol Anda menampilkan pesan yang mirip dengan contoh berikut:
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 onePesan output ini menunjukkan bahwa data berhasil disimpan ke Azure Cosmos DB lalu diambil lagi.
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan aplikasi ini, pastikan untuk menghapus grup sumber daya yang berisi Azure Cosmos DB yang Anda buat sebelumnya. Anda dapat menghapus grup sumber daya dari portal Microsoft Azure.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang Spring dan Azure, lanjutkan ke pusat dokumentasi Spring on Azure.
Sumber daya lainnya
Untuk informasi selengkapnya tentang menggunakan Azure Cosmos DB dan Java, lihat artikel berikut ini:
Untuk informasi selengkapnya tentang menggunakan aplikasi Spring Boot di Azure, lihat artikel berikut ini:
[Spring Cloud Azure Starter untuk Spring Data Azure Cosmos DB]
Menyebarkan aplikasi Spring Boot ke Linux di Azure App Service
Menjalankan Aplikasi Spring Boot pada Kluster Kubernetes di Azure Container Service
Untuk informasi selengkapnya tentang menggunakan Azure dengan Java, lihat Azure for Java Developers dan Bekerja dengan Azure DevOps dan Java.
Spring Framework adalah solusi sumber terbuka yang membantu pengembang Java membuat aplikasi tingkat perusahaan. Salah satu proyek yang lebih populer yang dibangun di atas platform tersebut adalah Spring Boot, yang menyediakan pendekatan yang disederhanakan untuk membuat aplikasi Java yang berdiri sendiri. Untuk membantu pengembang mulai menggunakan Spring Boot, beberapa contoh paket Spring Boot tersedia di https://github.com/spring-guides/. Selain memilih dari daftar proyek Spring Boot dasar, Spring Initializr membantu pengembang mulai membuat aplikasi Spring Boot kustom.