我創建了一個實現ServletContextAttributeListener
沒有默認構造函數的類和容器抱怨:爲什麼ServletContextAttributeListener需要默認構造函數?
嚴重:錯誤配置..... java.lang.InstantiationException的應用聽衆:......
所以我創建了一個默認構造函數,除了參數化構造函數,並且一切正常。由於容器需要一個默認構造,我懷疑容器正在創建一個新的類實例,而不是使用已經創建的實例。但插入靜態對象計數器成員數據,我發現這種懷疑是真實的。
我的問題是:如果我想更新我的對象的成員數據ServletContextAttributeEvent
,我可以以線程安全的方式嗎?容器創建一個新對象有什麼副作用,以及有哪些解決方法?
不應該屬性有非默認構造函數嗎?通過setter方法設置屬性成員數據是否是最佳實踐? –