4

Archaiusを使用して、アプリをホストしているすべてのサーバー間でシステム プロパティを調整しています。すべてのプロパティ ゲッターは、そのプロパティが変更されるたびに呼び出されるコールバックを受け取ることができますが (たとえば、 の3 番目の引数を参照)、プロパティの変更をリッスンgetStringProperty()たいと考えています。どこかにリスナーとして実装して登録できるインターフェイスはありますか?

4

1 に答える 1

7

Archaius のハウツー ドキュメントのいずれにも回答が見つかりませんでしたが、Apache Commons Configuration はConfiguration Eventsドキュメント (Archaius は完全に互換性があります) で解決策を提供しています。

を実装してリスナーを作成しましたorg.apache.commons.configuration.event.ConfigurationListener。これは、呼び出される単一のメソッドを定義し、単一のパラメーターconfigurationChanged()を取ります。ConfigurationEventこのメソッドは、プロパティが実際に変更される前と変更された後に 1 回呼び出され、各呼び出しのタイミングを示すパラメーターのbeforeUpdateブール値を使用します。event

リスナーを作成したら、それを Archaius 構成マネージャーに登録しました。

ConfigurationManager.getConfigInstance().addConfigurationListener(new MyCustomConfigurationListener());

MyCustomConfigurationListener.configurationChanged()これで、プロパティが変更されるたびに が 2 回 (前後に 1 回) 呼び出されることがわかります。

于 2014-09-16T23:03:47.953 に答える