2011-08-25 21 views
4

我最近升級/部署Java Web應用程序的產品(這是唯一一個WAR文件,而無需任何代碼,所以我不能去看看)。它有一個管理員屏幕,允許用戶配置應用程序屬性。我只是想知道他們是如何做到這一點,更改參數,甚至不需要重新啓動,因爲我習慣於通過編輯一些.ini或.xml來完成此類配置,並要求重新啓動應用程序才能生效。如何動態地配置應用程序參數

任何想法如何實現此功能?有沒有可用的API,或者如果沒有,可能會有什麼內部工作?

+0

服務器重啓後配置是否仍然存在? –

回答

3

任何web應用值得它的名字是在把東西在數據庫中,並得到它背出的業務。讓webapp本身根據某些數據改變它的行爲,而不是總是把它返回給用戶,這不是一個想象的巨大飛躍。我們有條件認爲應用程序屬性是靜態的,因爲這就是所有大型框架的行爲。他們的行爲是這樣的,因爲動態配置比靜態配置困難得多,但這並不意味着動態是不可行的。

0

它通過reflection完成。 Java具有反射api來訪問類屬性並調用這些屬性。

對於像Dependency Injection (DI)更提前的問題,如果這些屬性用於本申請的一些其他部件,需要通知在配置中的變化的。

2

如果只有幾個屬性,然後他們可能會堅持它的屬性文件,然後重新加載的屬性,如顯示在這個線程。 Loading a properties file from Java package

如果所有屬性總是從這個單PORP對象讀取然後改變它會瞬間導致應用程序的行爲改變。

相關問題