2013-05-12 30 views

回答

2

我不確定Struts Action類是否作爲單例實現,但我可以說框架只使用它的一個實例,並且只有一個實例用於處理所有傳入的請求,必須小心不要做在Action類中不是線程安全的。從javadoc

操作必須以線程安全的方式編程,因爲控制器將共享同一個實例以用於多個同時請求。這意味着你應該記住以下項目設計:

  1. 實例和靜態變量一定不得用於存儲與特定請求的狀態信息。它們可能被用於跨同一行動的請求共享全球資源。
  2. 訪問其他資源(JavaBeans,會話變量等)必須同步,如果這些資源需要保護。 (但是,總的來說,資源類的設計應該提供自己的保障,以便在必要時

編輯:

這是官方Apache Struts頁說的話:

Struts 1操作是單例並且必須是線程安全的,因爲只有一個類的實例可以處理所有請求爲那個行動。單例策略限制了Struts 1 Actions可以做什麼,並且需要額外注意開發。操作資源必須是線程安全的或同步的。

相關問題