1
我有一個Struts 1/Spring 2應用程序。我想知道是我Action
類單身所有會議或者如果每個用戶/會話得到Action
類的新對象共享?Struts 1爲每個會話創建一個控制器對象還是控制器類單例?
我有一個Struts 1/Spring 2應用程序。我想知道是我Action
類單身所有會議或者如果每個用戶/會話得到Action
類的新對象共享?Struts 1爲每個會話創建一個控制器對象還是控制器類單例?
我不確定Struts Action類是否作爲單例實現,但我可以說框架只使用它的一個實例,並且只有一個實例用於處理所有傳入的請求,必須小心不要做在Action類中不是線程安全的。從javadoc:
操作必須以線程安全的方式編程,因爲控制器將共享同一個實例以用於多個同時請求。這意味着你應該記住以下項目設計:
編輯:
這是官方Apache Struts頁說的話:
Struts 1操作是單例並且必須是線程安全的,因爲只有一個類的實例可以處理所有請求爲那個行動。單例策略限制了Struts 1 Actions可以做什麼,並且需要額外注意開發。操作資源必須是線程安全的或同步的。