3
我需要讀取包含JSF Web應用程序中的一些配置數據的屬性文件。是getResourceAsStream()是線程安全的嗎?
眼下的代碼看起來像這樣
private Properties getConfig() {
Properties properties = new Properties();
InputStream inputStream = null;
try {
inputStream = this.getClass().getResourceAsStream("/config.properties");
try {
properties.load(inputStream);
} catch (IOException e) {
logger.error("Error while reading config properties", e);
}
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}
return properties;
}
它是安全的做這樣或那樣我能碰到併發問題當多個線程呼籲getConfig()?
我不確定它是否線程安全或不正常,但通常在這種情況下,我使用單個色調配置類,其中我加載屬性文件一次,然後訪問它在任何我想要的地方。如果在部署後沒有人會更改屬性文件,則可以這樣做。 –
是的,我首先使用了一些Singleton方法。但要求是文件可以隨時更改。 – Sylar
這就是爲什麼我在我的評論中提到*這是可能的,因爲在部署後沒有人會更改屬性文件。* –