私の現在のプロジェクトでは、テキスト送信者がプロパティ ファイルのアップロードを介して改札メッセージ/国際化を管理する方法を実装する必要があります。
この質問も参照してください:国際化された改札アプリケーションの管理
そこで提案されているように、カスタムIStringResourceLoader
を実装し、それを StringResourceLoader リストの先頭に追加して、既に配置されているプロパティをオーバーライドしました。
getResourceSettings().getStringResourceLoaders().add(0, new CustomStringResourceLoader());
ただし、更新が発生する可能性があり、実行時にロードする必要があるため、これでは十分ではありません。StringResources は wicket によってキャッシュされ、ResourceWatcher
がトリガーされたときにのみ更新されます。
Wicket が文字列リソースをウォッチャーに追加する場所を見つけました:PropertiesFactory
設定内です。ウォッチャーにリソースを追加する方法はaddToWatcher(...)
. ただし、このメソッドは保護されており、セットアップ全体は、これが本番用ではなく開発目的で使用されることを示唆しています。
PropertiesFactory
カスタムバージョンを拡張して効果的に作成し、設定に追加することで、この方法を使用することができました。
getResourceSettings().setPropertiesFactory(new CustomPropertiesFactory(getResourceSettings()));
getResourceSettings().setResourcePollFrequency(Duration.seconds(1));
私の質問は次のとおりです。これは非常に迂遠な解決策だと思います。プロパティファイルの変更を監視する別の方法はありますか?