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.
Dalam panduan mulai cepat ini, Anda memasukkan Azure App Configuration ke dalam aplikasi web Spring Boot untuk membuat implementasi manajemen fitur end-to-end. Anda dapat menggunakan App Configuration untuk menyimpan semua bendera fitur Anda secara terpusat dan mengontrol statusnya.
Pustaka Manajemen Fitur Spring Boot memperluas kerangka kerja dengan dukungan bendera fitur yang komprehensif. Pustaka ini tidak memiliki dependensi pada pustaka Azure mana pun. Mereka terintegrasi secara lancar dengan App Configuration melalui penyedia konfigurasi Spring Boot-nya.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun gratis.
- Penyimpanan App Configuration, seperti yang ditunjukkan dalam tutorial untuk membuat penyimpanan.
- Java Development Kit SDK yang didukung dengan versi 11.
- Apache Maven versi 3.0 atau lebih tinggi.
Menambahkan bendera fitur
Tambahkan bendera fitur yang disebut Beta ke penyimpanan App Configuration dan biarkan Label dan Deskripsi dengan nilai defaultnya. Untuk informasi selengkapnya tentang cara menambahkan bendera fitur ke penyimpanan menggunakan portal Azure atau CLI, buka Membuat bendera fitur.
Buat aplikasi Spring Boot
Untuk membuat proyek Spring Boot baru:
Telusuri ke Spring Initializr.
Tentukan opsi berikut:
- Buat proyek Maven dengan Java.
- Tentukan versi Spring Boot yang sama dengan 2.0 atau yang lebih tinggi.
- Tentukan nama Grup dan Artefak untuk aplikasi Anda. Artikel ini menggunakan
com.exampledandemo. - Tambahkan dependensi Spring Web.
Setelah Anda menentukan opsi sebelumnya, pilih Buat Proyek. Ketika diminta, unduh proyek ke komputer lokal Anda.
Tambahkan manajemen fitur
Setelah Anda mengekstrak file di sistem lokal Anda, aplikasi Spring Boot Anda siap untuk diedit. Temukan pom.xml di direktori akar aplikasi Anda.
Buka file pom.xml dalam editor teks dan tambahkan hal berikut ke daftar
<dependencies>:
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-feature-management-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<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>
Catatan
- Ada Pustaka Manajemen Fitur non-web yang tidak memiliki dependensi pada spring-web. Lihat dokumentasi GitHub untuk mengetahui perbedaannya.
Tersambung ke Penyimpanan App Configuration
Navigasi ke
resourcesdirektori aplikasi Anda dan bukabootstrap.propertiesfile ataubootstrap.yaml. Jika file tidak ada, buatlah.Anda dapat terhubung dengan toko App Configuration menggunakan Microsoft Entra ID (disarankan) atau string koneksi.
Perbarui file konfigurasi Anda.
Jika Anda menggunakan file properti, gunakan kode berikut:
spring.config.import=azureAppConfiguration spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT} spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=trueJika Anda menggunakan file yaml, gunakan kode berikut:
spring: config: import: azureAppConfiguration cloud: azure: appconfiguration: stores: - feature-flags: enabled: true endpoint: ${APP_CONFIGURATION_ENDPOINT}Anda menggunakan
DefaultAzureCredentialuntuk mengautentikasi ke penyimpanan App Configuration Anda. Ikuti instruksi untuk menetapkan kredensial Anda peran Pembaca Data App Configuration. Pastikan untuk mengizinkan waktu yang memadai agar izin disebarluaskan sebelum menjalankan aplikasi Anda.Tambahkan kode berikut ke proyek Anda, kecuali Anda ingin menggunakan Identitas Terkelola. Buat file baru bernama
AppConfigCredential.java:import com.azure.data.appconfiguration.ConfigurationClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.spring.cloud.appconfiguration.config.ConfigurationClientCustomizer; public class AppConfigCredential implements ConfigurationClientCustomizer { @Override public void customize(ConfigurationClientBuilder builder, String endpoint) { builder.credential(new DefaultAzureCredentialBuilder().build()); } }Buat file baru bernama
MyConfiguration.javadan tambahkan baris berikut:import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfiguration { @Bean public AppConfigCredential clientSetup() { return new AppConfigCredential(); } }Tambahkan konfigurasi Konfigurasi Bootstrap, dengan membuat
spring.factoriesfile di bawahresources/META-INFdirektori dan menambahkan baris berikut dan memperbaruicom.example.MyConfigurationdengan paket aplikasi Anda:org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.example.MyConfiguration
Buat file Java baru bernama HelloController.java di direktori paket aplikasi Anda.
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import com.azure.spring.cloud.feature.management.FeatureManager; @Controller public class HelloController { @Autowired private FeatureManager featureManager; @GetMapping("/welcome") public String mainWithParam(Model model) { model.addAttribute("Beta", featureManager.isEnabled("Beta")); return "welcome"; } }Buat file HTML baru bernama welcome.html di direktori templat aplikasi Anda.
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Feature Management with Spring Cloud Azure</title> <link rel="stylesheet" href="/css/main.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script src="https://unpkg.com/@popperjs/core@2"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> </head> <body> <header> <!-- Fixed navbar --> <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark"> <a class="navbar-brand" href="#">TestFeatureFlags</a> <button class="navbar-toggler" aria-expanded="false" aria-controls="navbarCollapse" aria-label="Toggle navigation" type="button" data-target="#navbarCollapse" data-toggle="collapse"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarCollapse"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item" th:if="${Beta}"> <a class="nav-link" href="#">Beta</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Privacy</a> </li> </ul> </div> </nav> </header> <div class="container body-content"> <h1 class="mt-5">Welcome</h1> <p>Learn more about <a href="https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring/spring-cloud-azure-feature-management/README.md">Feature Management with Spring Cloud Azure</a></p> </div> <footer class="footer"> <div class="container"> <span class="text-muted">© 2019 - Projects</span> </div> </footer> </body> </html>Buat folder baru bernama CSS di bawah
staticdan di dalamnya ada file CSS baru bernama main.css.html { position: relative; min-height: 100%; } body { margin-bottom: 60px; } .footer { position: absolute; bottom: 0; width: 100%; height: 60px; line-height: 60px; background-color: #f5f5f5; } body > .container { padding: 60px 15px 0; } .footer > .container { padding-right: 15px; padding-left: 15px; } code { font-size: 80%; }
Membangun dan menjalankan aplikasi secara lokal
Atur variabel lingkungan.
Atur variabel lingkungan bernama APP_CONFIGURATION_ENDPOINT ke titik akhir penyimpanan App Configuration Anda yang ditemukan di bawah Gambaran Umum penyimpanan Anda di portal Azure.
Jika Anda menggunakan perintah Windows, jalankan perintah berikut dan hidupkan ulang perintah untuk memungkinkan perubahan berlaku:
setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"Jika Anda menggunakan PowerShell, jalankan perintah berikut:
$Env:APP_CONFIGURATION_ENDPOINT = "<endpoint-of-your-app-configuration-store>"Jika Anda menggunakan macOS atau Linux, jalankan perintah berikut:
export APP_CONFIGURATION_ENDPOINT='<endpoint-of-your-app-configuration-store>'Hidupkan ulang perintah untuk mengizinkan perubahan. Cetak nilai variabel lingkungan untuk memvalidasi bahwa variabel tersebut diatur dengan benar.
Bangun aplikasi Spring Boot Anda dengan Maven dan jalankan.
mvn clean package mvn spring-boot:runBuka jendela browser, dan buka URL:
http://localhost:8080/welcome.
Di portal App Configuration, pilih Pengelola Fitur, dan ubah status kunci Beta menjadi Aktif:
Tombol Status Beta Aktif Refresh halaman browser untuk menampilkan pengaturan konfigurasi baru.
Membersihkan sumber daya
Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.
Penting
Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.
- Masuk ke portal Azure, lalu pilih Grup sumber daya.
- Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
- Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
- Pilih Hapus grup sumber daya.
- Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.
Setelah beberapa saat, grup sumber daya dan semua sumber dayanya akan dihapus.
Langkah berikutnya
Dalam panduan mulai cepat ini, Anda membuat toko App Configuration baru dan menggunakannya untuk mengelola fitur di aplikasi web Spring Boot melalui pustaka Manajemen Fitur.
- Dokumentasi referensi pustaka
- Pelajari selengkapnya mengenai pengelolaan fitur.
- Kelola tanda fitur.
- Gunakan bendera fitur di aplikasi Spring Boot Core.