Java アプリの構成データのハードコーディングされたパスへの依存を排除したいと考えています。ResourceBundle を使用すると、クラスローダーを使用してリソースを見つけるのに役立つことを理解しています。
ResourceBundle を適切に使用して、リソースへのハードコードされたパス (たとえば、クラスに必要な .properties 構成データ ファイル) を置き換える方法を教えてもらえますか? 可能であれば、単純明快な例、ありがとうございました。
Java アプリの構成データのハードコーディングされたパスへの依存を排除したいと考えています。ResourceBundle を使用すると、クラスローダーを使用してリソースを見つけるのに役立つことを理解しています。
ResourceBundle を適切に使用して、リソースへのハードコードされたパス (たとえば、クラスに必要な .properties 構成データ ファイル) を置き換える方法を教えてもらえますか? 可能であれば、単純明快な例、ありがとうございました。
Resource.getBundle(String)を調べる必要があります。クラスパス上のリソースの完全修飾名を渡して、プロパティファイルとしてロードします。
Java 6より前では、ResourceBundleは通常次のことを許可していました。
Java 6には、 ResourceBundlesの他のソースへの扉を開くResourceBundle.Controlクラスが付属しています。次に例を示します。
お役に立てれば。
ResourceBundle は必要ありません。単純な Properties オブジェクトがその役割を果たします。クラスローダーを使用してプロパティ ファイルの入力ストリームを取得し、それを使用して値をロードします。より高度なユーザー構成を処理する必要がある場合は、設定 APIを使用してください。
敬具
Resource.getBundle(..) の背後にあるトリックは、クラスローダーの使用です。this.getClass().getClassLoader() を介してクラスパスにアクセスすることで、クラスパスにあるすべてのものをロードできます。Resource.getBundle(..) は、リソース/位置特定トピックで使用するための実用的なヘルパーです。