在android中,有一種機制確保只有一個類的實例可用於整個應用程序。這可以通過從應用程序派生該類來完成。
可以在servlet中做一些類似的事情嗎?我想在應用程序部署時初始化一個類。這個類應該只有一個實例。這樣所有的servlet都可以訪問它。
我開始知道可以將數據存儲在servlet上下文的散列映射中。但我不想這樣做。我想用自己的職能編寫自己的班級。這應該怎麼做?創建一個整個應用程序可訪問的類
回答
我想你以後只是一個singleton。
這最好通過定義一個具有單個實例的枚舉來實現。 (請注意,枚舉讓你有成員函數一樣類。)
public enum YourSingleton {
INSTANCE;
// Your methods...
}
,然後你訪問它
YourSingleton.INSTANCE
因此,創建要與自身職能無論什麼階級或任何你喜歡,並在啓動時將其放入ServletContext
。您可以使用ServletContextListener
來初始化並刪除它。這是什麼限制?
一旦服務器關閉,對象是否會被序列化。我希望能夠繼續以前狀態的對象。 – Ashwin
不,但你可以輕鬆地堅持和恢復自己在這個聆聽者。 –
使用singleton pattern
,所以第一次調用實例方法(比如YourClass.getInstance()
)將創建該實例並在整個應用程序中重用。
在Java中,單例最好使用枚舉實現。 – aioobe
剛剛看到您的重播和+1。 –
- 1. 如何爲整個應用程序創建一個全局類?
- 2. 訪問由另一個應用程序創建的Derby DB
- 3. 創建一個基於類的可重用應用程序
- 4. 訪問應用程序配置文件創建一個錯誤
- 5. 創建一個沒有整個框架的.NET應用程序?
- 6. 如何創建一個iPhone應用程序可訪問的服務器
- 7. 在整個應用程序中創建一個變量?
- 8. Winforms:在整個應用程序中訪問類屬性
- 9. 訪問另一個可可應用程序的視圖
- 10. 使變量可訪問整個Laravel 5.2應用程序
- 11. 創建一個單例類訪問ServiceSecurityContext.Current.WindowsIdentity
- 12. 訪問頁面創建從一個類
- 13. 一個應用程序可以訪問其他應用程序的事件嗎?
- 14. 我可以從我的應用程序訪問另一個應用程序嗎?
- 15. 從另一個應用程序訪問一個應用程序的數據庫
- 16. 從另一個應用程序訪問一個應用程序中的事件
- 17. 如何創建我可以在整個程序中訪問的字典?
- 18. 錯誤的應用程序域創建一個應用程序
- 19. 是否可以創建一個應用程序來訪問另一個用戶帳戶?
- 20. 整個應用程序的一個UINavigationcontroller?
- 21. 構建一個鍵盤訪問的Web應用程序
- 22. [ruby]創建一個應用程序
- 23. 爲應用程序創建一個URI
- 24. C#創建一個ListBox應用程序
- 25. 創建一個活動應用程序
- 26. 爲應用程序創建一個GUI
- 27. 創建一個定時應用程序
- 28. 創建一個16位應用程序?
- 29. 創建一個Web應用程序
- 30. 創建一個Drools Web應用程序
這可能的作品,是的,因爲一個Web應用程序幾乎肯定都在一個'ClassLoader'內。使用'ServletContext'有點乾淨,並且有機會能夠跨羣集實例共享對象,這可能是可取的。 –