Rumah >Java >javaTutorial >Melaksanakan Pengurusan Bendera Ciri dalam Aplikasi But Spring Anda Menggunakan Panggilan API dan UI dengan Togglz

Melaksanakan Pengurusan Bendera Ciri dalam Aplikasi But Spring Anda Menggunakan Panggilan API dan UI dengan Togglz

DDD
DDDasal
2024-12-30 19:53:12820semak imbas

Implementing Feature Flag Management in Your Spring Boot Application Using API Calls and UI with Togglz

Dalam pembangunan perisian moden, keupayaan untuk mengawal ciri dalam aplikasi langsung tanpa menggunakan kod baharu adalah penting. Keupayaan ini, yang dikenali sebagai pengurusan bendera ciri, membolehkan pasukan menghidupkan atau mematikan ciri dalam masa nyata, membolehkan penghantaran berterusan, ujian A/B dan keluaran kenari. Ia juga memainkan peranan penting dalam mengurangkan risiko yang berkaitan dengan penempatan baharu dengan mengawal pendedahan ciri baharu kepada pengguna.

Dalam artikel ini, kami akan melalui proses melaksanakan pengurusan bendera ciri dalam aplikasi Spring Boot menggunakan Togglz. Kami akan meneroka cara mengkonfigurasi Togglz, mentakrifkan bendera ciri dan mengawal kelakuannya dalam aplikasi anda.

1. Menyediakan Togglz dalam Aplikasi But Spring Anda

Untuk bermula dengan Togglz, anda perlu menambah kebergantungan yang diperlukan pada projek Spring Boot anda. Buka fail build.gradle atau pom.xml anda dan tambahkan kebergantungan berikut:

implementation 'org.togglz:togglz-spring-boot-starter:3.1.2'
implementation 'org.togglz:togglz-console:3.3.3'

Kebergantungan ini termasuk fungsi teras Togglz dan konsol berasaskan web pilihan untuk mengurus bendera ciri anda.

2. Mengkonfigurasi Togglz

Seterusnya, anda perlu mengkonfigurasi Togglz dalam aplikasi Spring Boot anda. Ini melibatkan penyediaan kacang FeatureManager yang Togglz gunakan untuk mengurus bendera ciri anda.

Begini cara anda boleh melakukannya:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.togglz.core.manager.FeatureManager;
import org.togglz.core.manager.FeatureManagerBuilder;
import org.togglz.core.repository.jdbc.JdbcStateRepository;
import org.togglz.core.user.NoOpUserProvider;

import javax.sql.DataSource;

@Configuration
public class TogglzConfiguration {

    private final DataSource dataSource;

    @Autowired
    public TogglzConfiguration(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    @Bean
    public FeatureManager featureManager() {
        return new FeatureManagerBuilder()
                .featureEnum(ProductCheckFeature.class)
                .stateRepository(new JdbcStateRepository(dataSource))
                .userProvider(new NoOpUserProvider())
                .build();
    }
}

Penjelasan:

  • DataSource: DataSource disuntik untuk digunakan oleh JdbcStateRepository. Ini membolehkan Togglz mengekalkan keadaan bendera ciri dalam pangkalan data.
  • FeatureManager: FeatureManager dibina menggunakan FeatureManagerBuilder. Kami menentukan enum yang mentakrifkan ciri (ProductCheckFeature.class), menggunakan JdbcStateRepository untuk menyimpan keadaan ciri dan NoOpUserProvider kerana kami tidak mengaitkan pengguna dengan ciri dalam contoh ini.

3. Mentakrifkan Bendera Ciri dengan Enum

Togglz menggunakan enum untuk menentukan bendera ciri. Setiap pemalar dalam enum mewakili ciri yang boleh dihidupkan atau dimatikan. Berikut ialah contoh:

import org.togglz.core.Feature;
import org.togglz.core.annotation.Label;

public enum ProductCheckFeature implements Feature {

    @Label("product-check")
    PRODUCT_CHECK,

}

Penjelasan:

Label: Anotasi @Label menyediakan nama yang boleh dibaca manusia untuk ciri tersebut. Nama ini akan dipaparkan dalam konsol Togglz jika anda memutuskan untuk menggunakannya.

4. Menggunakan Bendera Ciri dalam Aplikasi Anda

Setelah bendera ciri ditakrifkan dan konfigurasi disediakan, anda boleh mula menggunakannya dalam aplikasi anda. Berikut ialah contoh cara menyemak sama ada ciri aktif sebelum melaksanakan kod tertentu:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.togglz.core.manager.FeatureManager;
import reactor.core.publisher.Mono;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("/api/products")
public class ProductController {

    private final FeatureManager featureManager;
    private final ProductService productService;

    public ProductController(FeatureManager featureManager, ProductService productService) {
        this.featureManager = featureManager;
        this.productService = productService;
    }

    @GetMapping("/check")
    public Mono<ResponseEntity<?>> checkProduct(@RequestParam String isbn, HttpServletRequest httpServletRequest) {
        if (featureManager.isActive(ProductCheckFeature.PRODUCT_CHECK)) {
            return productService
                    .productCheck(isbn, JwtUtils.getUserJwt(httpServletRequest), Boolean.FALSE)
                    .flatMap(response -> Mono.just(ResponseEntity.ok(response)));
        } 
        return Mono.just(ResponseEntity.status(HttpStatus.NOT_IMPLEMENTED).body("Feature is disabled"));
    }
}

Penjelasan:

  • FeatureManager: FeatureManager disuntik ke dalam pengawal dan digunakan untuk menyemak sama ada ciri PRODUCT_CHECK aktif.
  • Logik Bersyarat: Jika ciri aktif, operasi semakan produk dilakukan; jika tidak, mesej "Ciri dinyahdayakan" dikembalikan.

5. Menguruskan Bendera Ciri melalui Togglz Console

Konsol Togglz ialah alat berkuasa yang membolehkan anda mengurus bendera ciri anda melalui antara muka web. Untuk mendayakan konsol Togglz, cuma tambahkan sifat berikut pada fail application.properties atau application.yml anda:

implementation 'org.togglz:togglz-spring-boot-starter:3.1.2'
implementation 'org.togglz:togglz-console:3.3.3'

Anda boleh mengakses konsol dengan menavigasi ke /togglz-console dalam penyemak imbas web anda. Konsol menyediakan antara muka yang mudah digunakan untuk menghidupkan atau mematikan ciri, menukar strateginya dan melihat keadaan semasanya.

Kesimpulan

Melaksanakan pengurusan bendera ciri dengan Togglz dalam aplikasi Spring Boot anda ialah proses mudah yang menawarkan kawalan berkuasa ke atas ciri anda. Dengan mengikut langkah yang digariskan dalam artikel ini, anda boleh mengkonfigurasi, mentakrif dan mengurus bendera ciri dengan mudah, membolehkan anda mengeluarkan ciri baharu dengan yakin dan fleksibiliti.

Sama ada anda melancarkan ciri baharu secara beransur-ansur, menjalankan ujian A/B atau sekadar ingin meminimumkan risiko penggunaan, Togglz menyediakan penyelesaian teguh yang disepadukan dengan lancar ke dalam aplikasi Spring Boot anda.

Selamat Pengekodan! ?

Atas ialah kandungan terperinci Melaksanakan Pengurusan Bendera Ciri dalam Aplikasi But Spring Anda Menggunakan Panggilan API dan UI dengan Togglz. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn