Javaアプリケーションでハードコードされた構成パスを回避するためにResourceBundleを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/154728

  •  03-07-2019
  •  | 
  •  

質問

Javaアプリの構成データのハードコーディングされたパスへの依存関係を排除したいのですが、ResourceBundleを使用すると、クラスローダーを使用してリソースを見つけることができることを理解しています。

リソースへのハードコードされたパス(たとえば、クラスに必要な.properties構成データファイル)をResourceBundleを適切に使用して置き換える方法を教えてもらえますか?可能であればシンプルでわかりやすい例、ありがとうございます。

役に立ちましたか?

解決

Java 6より前、通常はResourceBundleが許可されています:

Java 6には ResourceBundleが付属しています。 ResourceBundlesの他のソースへの扉を開くControl クラス。例:

  • XMLファイル(Javadocの例2を参照)
  • データベース行

これがお役に立てば幸いです。

他のヒント

Resource.getBundle(String)。クラスパス上のリソースの完全修飾名を渡して、プロパティファイルとしてロードします。

ResourceBundleは必要ありません。単純なPropertiesオブジェクトでジョブを実行できます。クラスローダーを使用してプロパティファイルの入力ストリームを取得し、それを使用して値をロードします。より高度なユーザー設定を処理する必要がある場合は、設定API

よろしく

Resource.getBundle(..)の背後にあるトリックは、クラスローダーの使用です。 this.getClass()。getClassLoader()を介してアクセスすることにより、クラスパスにあるすべてのものをロードできます。 Resource.getBundle(..)は、リソース/場所のトピックで使用する実用的なヘルパーです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top