簡體   English   中英

如何在運行時在Web應用程序中修改屬性文件?

[英]How to modify properties file in a web app at runtime?

我的Web應用程序通過讀取屬性文件來執行其某些行為。 我希望有一個管理控制台,可以在應用程序通過jsp界面運行時修改屬性文件。 我目前可以通過執行以下操作讀取屬性文件:

Properties props = new Properties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(FILE_PATH));  

然后,我可以將其傳遞給我的視圖並顯示它們。

但是,當我要修改它們時,除非我將完整的路徑傳遞給文件,否則無法以相同的方式找到屬性文件(需要輸出流)以保存新的屬性值。

我已經讀過,修改ClassLoader給您的資源是不好的做法。 如果將屬性文件放置在Web應用程序外部,那么如何確保在完成修改時將其鎖定? 有另一種方法可以做到這一點(屬性必須位於.properties文件中)。

如果有任何區別,我將使用Spring MVC在Tomcat上。

我會將您當前的屬性文件保留在正確的位置,並將其用作基本的“加載”源。 所有替代項都將轉到Web應用程序外部的位置(使該位置可配置)。 您的啟動邏輯將始終是:

  • 加載基礎源
  • 覆蓋覆蓋

很顯然,每當通過管理控制台更改屬性時,該屬性都會保存為替代。 除了解決應用程序存檔問題外,此設置的一個不錯的功能是您可以為用戶提供將屬性值恢復為“默認”的選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM