大概應該是這樣的吧。spring
由於Spring默認的是單例模式,將struts交給spring管理,struts中須要的action應該是多實例的,因此須要在配置action的時候加入scope="prototype"來保證每個請求有一個單獨的action來處理,避免struts中action的線程安全問題。安全
爲何須要action爲多實例?我本身的見解!!!!!!!!!jvm
由於action中須要成員變量來傳遞請求的參數並保存這些參數,每個客戶端發來的請求參數是不一樣的,使用因此須要多實例的成員變量來保存不一樣用戶的參數。spa
那爲何service能夠爲單實例呢?看了網上的說法大概是這樣的吧!!!!!!!!prototype
service中不用成員變量來保存用戶的參數,且線程
對同一個對象,若是同時有兩個線程調用這個對象的同一個方法,那麼jvm會自動開兩個棧用以存儲這個方法內部的變量,因此沒有同步問題對象