使用
springmvc
有一段時間了
,之前一直使用
struts2,
在struts2
中action
都是原型
(prototype)
的, 說是因為執行緒安全問題,對於
springmvc
中bean
預設都是
(singleton)
單例的,
那麼用@controller
註解標籤注入的
controller
類是單例實現的?測試
結果發現
spring3
中的controller
預設是單例的,若是某個
controller
中有乙個私有的變數
i,所有請求到同乙個
controller
時,使用的
i變數是共用的,即若是某個請求中修改了這個變數
i,則,在別的請求中能夠讀到這個修改的內容。
若是在@controller
之前增加
@scope(
「prototype」)
,就可以改變單例模式為多例模式
2. 如果
controller
類是單例,那麼多個執行緒請求同乙個
controller
類中的同乙個方法,執行緒是否會堵塞
} 驗證方法:分別傳送兩個請求,
第乙個請求:http://localhost:8080/coreplat/sleepdata?sleep=on
第二個請求:http://localhost:8080/coreplat/sleepdata?sleep=test
驗證結果:第乙個請求發出去以後,本地伺服器等待100s
,然後返回結果」
sleep on」,
在本地伺服器等待的者
100s
當中,傳送第二個請求,直接返回結果」
test
」。說明之間的執行緒是不互相影響的。
SpringMVC Controller單例和多例
對於springmvc controller單例和多例,下面舉了個例子說明下.第一次 類是多例,乙個普通屬性和乙個靜態屬性。結果 普通屬性 0.靜態屬性 0 普通屬性 0.靜態屬性 1 普通屬性 0.靜態屬性 2 普通屬性 0.靜態屬性 3 所以說 對於多例情況普通屬性時不會共用的,不會產生影響,對...
SpringMVC Controller單例和多例
對於springmvc controller單例和多例,下面舉了個例子說明下.第一次 類是多例,乙個普通屬性和乙個靜態屬性。結果 普通屬性 0.靜態屬性 0 普通屬性 0.靜態屬性 1 普通屬性 0.靜態屬性 2 普通屬性 0.靜態屬性 3 所以說 對於多例情況普通屬性時不會共用的,不會產生影響,對...
SpringMVC Controller單例和多例
對於springmvc controller單例和多例,下面舉了個例子說明下.第一次 類是多例,乙個普通屬性和乙個靜態屬性。結果 普通屬性 0.靜態屬性 0 普通屬性 0.靜態屬性 1 普通屬性 0.靜態屬性 2 普通屬性 0.靜態屬性 3 所以說 對於多例情況普通屬性時不會共用的,不會產生影響,對...