2009-09-24 38 views
2

我正在使用幾個包,這些包通過使用配置屬性(例如org.apache.ws.security.crypto)進行配置。通常一個配置文件就足夠了,但是現在我需要重寫一個或多個屬性,只要它們被從特定對象實例調用的代碼使用。 我遠離java專家(但有太多的編程經驗提及),所以任何具體的解決方案的指導將不勝感激。從包中覆蓋Java屬性

+2

歡迎來到全球變量的地獄...... – 2009-09-24 13:16:16

回答

1

Java屬性存儲是一個單一的全局名稱 - 值映射。沒有基於「誰」(對象,包等)引用屬性的重寫屬性的一般支持。

0

答案將取決於您正在使用的特定軟件包以及您希望更改哪個屬性。屬性文件可能在啓動時被讀取一次,並且從不再被訪問。如果這就是代碼的作用,那麼在沒有改變代碼的情況下你就無能爲力。其他軟件包使您可以更改屬性,或爲您提供其他配置選項,以便您在不使用屬性文件的情況下設置值。個別呼叫者必須確保根據需要更改屬性。

您還需要關心線程問題(即使您正在將應用程序服務器抽象出來)。如果屬性存儲爲靜態變量,則更改爲一個調用者可能會更改所有調用者。

無論採用哪種方式,我都會建議詢問您關心的具體類別和屬性,看看是否有人知道如何處理每個主叫方更改屬性。