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