我正在運行多個API,這些API從文本文件加載默認屬性。
但是,如果1個API更改屬性值,我希望所有API都能夠讀取新值。
我嘗試使用System.setProperty(「prop_name」,)但這不會更改到其他API。
我不想修改原始文本文件。同時也希望避免增加編寫新屬性文件的開銷並使所有API加載此文件(有許多API和許多屬性,並且不希望每個屬性更改都發生這種情況)。
如何更改java中的持久屬性
我該怎麼做?
我正在運行多個API,這些API從文本文件加載默認屬性。
但是,如果1個API更改屬性值,我希望所有API都能夠讀取新值。
我嘗試使用System.setProperty(「prop_name」,)但這不會更改到其他API。
我不想修改原始文本文件。同時也希望避免增加編寫新屬性文件的開銷並使所有API加載此文件(有許多API和許多屬性,並且不希望每個屬性更改都發生這種情況)。
如何更改java中的持久屬性
我該怎麼做?
您需要更改庫以採取共享Properties
對象或使用System.getProperties()
。如果每個庫打開一個文件不Properties.load(...)
直接,那麼你的選擇是有限的:
Properties.load(...)
Properties
類(包括在此名單的完整性只)。我不想更改原始屬性文件。這是因爲所有的程序都應該以默認值開始。只有在運行期間,如果值發生變化,那麼應該使用新值。 – Andy 2011-04-20 22:39:38
您合作uld爲每個JVM生成一個收割者線程,該線程輪詢目錄中的文件以查找更改並應用它們,因爲它們適用於該JVM。
您可以使用套接字API將所有應用程序連接到服務器應用程序。服務器可以管理屬性,客戶端可以定期輪詢更改。
基本上你正在做的是促進進程間通信。因此,任何標準的方法(文件,管道,套接字,Web服務等)都應該允許您跨應用程序同步屬性。更細粒度(就分派個別更改而不是擦除和重新加載而言),您希望成爲更復雜的解決方案
我認爲您需要查看「API」這個詞的含義 – 2011-04-20 22:13:53
庫是如何實際加載屬性?每個庫是直接從文件中讀取,還是在單個位置讀取文件,並且庫接收到一個Properties對象? – 2011-04-20 22:14:53
直接從文件 – Andy 2011-04-20 22:16:42