我創建了一個Web應用程序,並在已添加到classpath的獨立文件夾中有一個屬性文件。我正在使用屬性對象在沒有重複構建Web應用程序的情況下獲取屬性文件中的更改
public static Properties getProps() {
Properties properties = new Properties();
try {
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("mdmdemo.properties"));
} catch (IOException ex) {
Logger.getLogger(BasicUtils.class.getName()).log(Level.SEVERE, null, ex);
}
return properties;
}
獲取密鑰沒有問題。但是,儘管我將屬性文件放置在戰爭之外,但在構建和部署戰爭之前,我無法看到prop文件中所做的更改。我還重複創建新的屬性對象以查看更改,而不僅僅是在Web應用程序初始化中。
我知道,在這種情況下使用數據庫是一個更好的解決方案,但我不允許這樣做。
如何獲取更改?
如果'getProps()'僅在部署戰爭時調用,則永遠不會注意到屬性文件中的更改。您需要在包含該文件的目錄上設置監視服務。查看[觀看目錄以瞭解更改](https://docs.oracle.com/javase/tutorial/essential/io/notification.html) –
我在servlet的doGet()函數中調用getProp()。該頁面本身定期刷新。我認爲這應該夠了,我錯了嗎? – ismailkuyu
聽起來像它應該是足夠的。 –