現代のソフトウェア開発では、新しいコードをデプロイせずにライブ アプリケーションの機能を制御できることが重要です。機能フラグ管理と呼ばれるこの機能により、チームは機能をリアルタイムでオンまたはオフにできるため、継続的デリバリー、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(); } }
説明:
- DataSource: DataSource は、JdbcStateRepository によって使用されるために挿入されます。これにより、Togglz は機能フラグの状態をデータベースに保持できるようになります。
- FeatureManager:FeatureManager は、FeatureManagerBuilder を使用して構築されます。機能を定義する列挙型 (ProductCheckFeature.class) を指定し、機能の状態を保存するために JdbcStateRepository を使用します。この例ではユーザーを機能に関連付けていないため、NoOpUserProvider を使用します。
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")); } } </responseentity>
説明:
- FeatureManager:FeatureManager はコントローラーに挿入され、PRODUCT_CHECK 機能がアクティブかどうかを確認するために使用されます。
- 条件付きロジック: 機能がアクティブな場合、製品チェック操作が実行されます。それ以外の場合は、「機能は無効です」というメッセージが返されます。
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 サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
