3

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

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

4

4 に答える 4

3

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

于 2008-09-30T20:11:11.110 に答える
2

Java 6より前では、ResourceBundleは通常次のことを許可していました。

  • PropertyResourceBundleを使用した、ローカライズされたプロパティファイルのグループからの文字列
  • ListResourceBundleを使用した、ローカライズされたクラスのグループからのオブジェクト

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

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

お役に立てれば。

于 2008-09-30T22:47:39.473 に答える
2

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

敬具

于 2008-10-01T01:35:51.580 に答える
0

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

于 2008-09-30T22:10:18.097 に答える