スプリングベースのWebアプリケーション(20のJVMで実行するため)の作業を開始しています。Webアプリケーションは、さまざまな環境(Dev、QA、test、Stress、Productionなど)で実行されます。
以下の設計目標を使用して、アプリケーションの構成フレームワークの設計を検討しています...
構成フレームワークの設計目標
- 継承モデルのサポート:
構成プロパティが静的である場合、グローバルに定義でき、すべての環境に継承できる必要があります。環境には、継承されたプロパティの値をオーバーライドする機能が必要です。 - 冗長性の排除:
構成プロパティを表示、変更、および追加するには、1つの場所を調べるだけで済みます。これにより、プロパティを追加または変更するときにファイルが失われるリスクを減らすことができます。 - 実行時にプロパティを管理および維持する機能。
メモリ内の1対多のJVMのプロパティを簡単に変更でき、JVMの再起動時にその変更を保持するオプションが必要です。 - デバッグする機能。
機能スイッチなどの現在の状態を判断するには、プロパティをメモリから簡単にダンプできる必要があります(1対多のプロパティ)。 - さまざまなINT、QA、STRESS環境が同期しておらず、展開および保守が困難である可能性を減らします。
- 開発の容易さ、および本番環境までの展開プロセスをサポートします。この変更は、開発を効果的に行うためのローカル開発者の能力に悪影響を与えるべきではありません。それどころか、それはそれを容易にするはずです。
Springでこの種の構成フレームワークを実現するための提案/推奨事項はありますか?