私はそれぞれ異なる目的のために約10個のプロパティファイルを持っており、それぞれのファイルの新しいクラスを作成してその中のコンテンツにアクセスします。私は、.getValue(key,propertFileName)
のようなメソッドでクラスを作成する可能性があると考えています。Javaで単一のマネージャクラスを持つ複数のプロパティファイルにアクセスする方法
私は.getValue("name.type","sample.properties");
以下
のように呼び出した場合、私はプロパティファイルから値を取得するために使用していると私は、コアJavaを使用していたコードであるように。
public class PropertiesCache {
private final Properties configProp = new Properties();
private PropertiesCache() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("sample.properties");
System.out.println("Read all properties from file");
try {
configProp.load(in);
} catch (IOException e) {
e.printStackTrace();
}
}
private static class LazyHolder {
private static final PropertiesCache INSTANCE = new PropertiesCache();
}
public static PropertiesCache getInstance() {
return LazyHolder.INSTANCE;
}
public String getProperty(String key) {
return configProp.getProperty(key);
}
public Set<String> getAllPropertyNames() {
return configProp.stringPropertyNames();
}
public boolean containsKey(String key) {
return configProp.containsKey(key);
}
}
以下の呼び出しで、私はsample.propertiesファイルから値を取得できます。
PropertiesCache.getInstance().getProperty("name.type");
上記のコードでは、1つのプロパティファイルからコンテンツを取得できます。複数のファイルから値を取得するには、ファイルごとに別々のCacheクラスを作成する必要があります。
あなたは、単一のマネージャクラスを持つ異なるプロパティファイルからプロパティ値を取得する方法を教えてください。
したがって.getValue("name.type","sample.properties")
はPropertiesCache.getInstance().getProperty("name.type")
のように同じ値を返す必要があります。
おかげ@starf。それは私のために働いた。コードの変更のみが必要です。マップオブジェクトを初期化する必要があります。すべてがうまくいった。もう一度ありがとう – Krishna
@KrishnaD素晴らしい!私はあなたの変更で答えを編集します。私は本当にそれをテストしなければなりません... – starf