2

私の Web アプリケーションは、プロパティ ファイルから読み取ることによって、その動作の一部を実行します。アプリケーションが jsp インターフェイスを介して実行されている間にプロパティ ファイルを変更できる管理コンソールが必要です。現在、次のようにしてプロパティファイルを読み取ることができます。

Properties props = new Properties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(FILE_PATH));  

次に、それらを自分のビューに渡して表示できます。

ただし、それらを変更したい場合、ファイルへのフルパスを渡さない限り、新しいプロパティ値を保存するために同じ方法でプロパティファイルを見つけることができません (出力ストリームが必要です)。

ClassLoader によって提供されたリソースを変更するのは悪い習慣であると読んだことがあります。プロパティ ファイルを Web アプリケーションの外部に配置する場合、変更が行われている間、プロパティ ファイルがロックされていることを確認するにはどうすればよいですか? これを行う別の方法はありますか (プロパティは .properties ファイルにある必要があります)。

それが違いを生むなら、私はSpring MVCでTomcatを使用しています。

4

1 に答える 1

1

現在のプロパティ ファイルを正確な場所に保持し、それらをベースの「読み込み」ソースとして使用します。すべてのオーバーライドは、Web アプリの外部の場所に移動します (場所を構成可能にします)。起動ロジックは常に次のようになります。

  • ベースソースをロード
  • オーバーレイのオーバーライド

明らかに、管理コンソールを介してプロパティが変更されると、オーバーライドとして保存されます。このセットアップの優れた機能は、アプリケーション アーカイブの問題を解決することとは別に、プロパティ値を「デフォルト」に戻すオプションをユーザーに提供できることです。

于 2012-11-20T17:23:38.187 に答える