ホームページ >Java >&#&チュートリアル >Togglz による API 呼び出しと UI を使用した Spring Boot アプリケーションへの機能フラグ管理の実装
現代のソフトウェア開発では、新しいコードをデプロイせずにライブ アプリケーションの機能を制御できることが重要です。機能フラグ管理と呼ばれるこの機能により、チームは機能をリアルタイムでオンまたはオフにできるため、継続的デリバリー、A/B テスト、カナリア リリースが可能になります。また、ユーザーへの新機能の公開を制御することで、新しい展開に関連するリスクを軽減する上でも重要な役割を果たします。
この記事では、Togglz を使用して Spring Boot アプリケーションに機能フラグ管理を実装するプロセスについて説明します。 Togglz を構成し、機能フラグを定義し、アプリケーション内での動作を制御する方法を見ていきます。
1. Spring Boot アプリケーションでの Togglz のセットアップ
Togglz を開始するには、必要な依存関係を Spring Boot プロジェクトに追加する必要があります。 build.gradle または pom.xml ファイルを開き、次の依存関係を追加します:
implementation 'org.togglz:togglz-spring-boot-starter:3.1.2' implementation 'org.togglz:togglz-console:3.3.3'
これらの依存関係には、Togglz のコア機能と、機能フラグを管理するためのオプションの Web ベースのコンソールが含まれます。
2. Togglz
の構成次に、Spring Boot アプリケーションで Togglz を構成する必要があります。これには、Togglz が機能フラグを管理するために使用する FeatureManager Bean のセットアップが含まれます。
その方法は次のとおりです:
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(); } }
説明:
3.列挙型を使用した機能フラグの定義
Togglz は列挙型を使用して機能フラグを定義します。列挙型の各定数は、オンまたはオフに切り替えることができる機能を表します。以下に例を示します:
import org.togglz.core.Feature; import org.togglz.core.annotation.Label; public enum ProductCheckFeature implements Feature { @Label("product-check") PRODUCT_CHECK, }
説明:
Label: @Label アノテーションは、人間が読める形式の機能名を提供します。この名前を使用すると、Togglz コンソールに表示されます。
4.アプリケーションでの機能フラグの使用
機能フラグが定義され、設定が完了したら、アプリケーションでそれらの使用を開始できます。以下は、特定のコードを実行する前に機能がアクティブかどうかを確認する方法の例です:
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")); } }
説明:
5. Togglz コンソールによる機能フラグの管理
Togglz コンソールは、Web インターフェイスを通じて機能フラグを管理できる強力なツールです。 Togglz コンソールを有効にするには、次のプロパティを application.properties または application.yml ファイルに追加するだけです:
implementation 'org.togglz:togglz-spring-boot-starter:3.1.2' implementation 'org.togglz:togglz-console:3.3.3'
Web ブラウザで /togglz-console に移動すると、コンソールにアクセスできます。コンソールには、機能のオン/オフ、戦略の変更、現在の状態の表示のための使いやすいインターフェイスが用意されています。
結論
Spring Boot アプリケーションに Togglz を使用して機能フラグ管理を実装することは、機能に対する強力な制御を提供する簡単なプロセスです。この記事で説明する手順に従うことで、機能フラグを簡単に構成、定義、管理できるため、自信と柔軟性を持って新機能をリリースできます。
新機能を段階的にロールアウトする場合でも、A/B テストを実施する場合でも、単に展開リスクを最小限に抑えたい場合でも、Togglz は Spring Boot アプリケーションにシームレスに統合する堅牢なソリューションを提供します。
コーディングを楽しんでください! ?
以上がTogglz による API 呼び出しと UI を使用した Spring Boot アプリケーションへの機能フラグ管理の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。