Mulai cepat: Menambahkan bendera fitur ke aplikasi Spring Boot

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

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.

Aktifkan bendera fitur bernama Beta

Buat aplikasi Spring Boot

Untuk membuat proyek Spring Boot baru:

  1. Telusuri ke Spring Initializr.

  2. 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.example dan demo.
    • Tambahkan dependensi Spring Web.
  3. Setelah Anda menentukan opsi sebelumnya, pilih Buat Proyek. Ketika diminta, unduh proyek ke komputer lokal Anda.

Tambahkan manajemen fitur

  1. Setelah Anda mengekstrak file di sistem lokal Anda, aplikasi Spring Boot Anda siap untuk diedit. Temukan pom.xml di direktori akar aplikasi Anda.

  2. 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>5.8.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

  1. Navigasikan ke direktori resources aplikasi Anda dan buka bootstrap.properties. Jika file tidak ada, buatlah. Tambahkan baris berikut ke file.

    spring.cloud.azure.appconfiguration.stores[0].connection-string= ${APP_CONFIGURATION_CONNECTION_STRING}
    spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=true
    
  2. Atur variabel lingkungan bernama APP_CONFIGURATION_CONNECTION_STRING, dan atur variabel ini ke string koneksi ke penyimpanan App Configuration Anda. Di baris perintah, jalankan perintah berikut dan hidupkan ulang perintah agar perubahan berlaku:

    Untuk membuat dan menjalankan aplikasi secara lokal menggunakan perintah Windows, jalankan perintah berikut:

    setx APP_CONFIGURATION_CONNECTION_STRING "connection-string-of-your-app-configuration-store"
    

    Hidupkan ulang perintah untuk mengizinkan perubahan. Cetak nilai variabel lingkungan untuk memvalidasi bahwa variabel tersebut diatur dengan benar.

  3. Buat file Java baru bernama HelloController.java di direktori paket aplikasi Anda.

    package com.example.demo;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    
    import com.azure.spring.cloud.feature.management.FeatureManager;
    import org.springframework.web.bind.annotation.GetMapping;
    
    
    @Controller
    @ConfigurationProperties("controller")
    public class HelloController {
    
        private FeatureManager featureManager;
    
        public HelloController(FeatureManager featureManager) {
            this.featureManager = featureManager;
        }
    
        @GetMapping("/welcome")
        public String mainWithParam(Model model) {
            model.addAttribute("Beta", featureManager.isEnabledAsync("Beta").block());
            return "welcome";
        }
    }
    
  4. 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">&copy; 2019 - Projects</span>
        </div>
    
        </footer>
    </body>
    </html>
    
    
  5. Buat folder baru bernama CSS di bawah static dan 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

  1. Bangun aplikasi Spring Boot Anda dengan Maven dan jalankan.

    mvn clean package
    mvn spring-boot:run
    
  2. Buka jendela browser, dan buka URL: http://localhost:8080/welcome.

    Cuplikan layar menunjukkan jendela browser dengan pesan Selamat Datang.

  3. Di portal App Configuration, pilih Pengelola Fitur, dan ubah status kunci Beta menjadi Aktif:

    Kunci Status
    Beta Aktif
  4. Refresh halaman browser untuk menampilkan pengaturan konfigurasi baru.

    Cuplikan layar menunjukkan jendela browser dengan pesan Selamat Datang dan tautan Beta yang dipanggil.

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.

  1. Masuk ke portal Azure, lalu pilih Grup sumber daya.
  2. Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
  3. Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
  4. Pilih Hapus grup sumber daya.
  5. 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.