spring每次請求創(chuàng)建線程 Spring MVC的Controller是線程安全的么?
Spring MVC的Controller是線程安全的么?SpringMVC是基于單例模式的,所以如果有一個類的實(shí)例全局變量,就會出現(xiàn)問題。但是,根據(jù)springmvc的設(shè)計(jì)要求,不建議全局變量的存在
Spring MVC的Controller是線程安全的么?
SpringMVC是基于單例模式的,所以如果有一個類的實(shí)例全局變量,就會出現(xiàn)問題。但是,根據(jù)springmvc的設(shè)計(jì)要求,不建議全局變量的存在,類引用只是服務(wù)層的一個對象。此對象不具有保存請求數(shù)據(jù)信息的功能,如果有保存信息,也直接傳遞到函數(shù)中。函數(shù)是線程安全的。所以使用起來應(yīng)該是安全的。springmvc和sturts2的區(qū)別在于請求的信息是否保存在控制器層。Struts2的操作需要保存請求信息。springmvc不保存。所以struts2使用prototype,springmvc使用singleton??傮w而言,springmvc的控制器不是線程安全的,但是對設(shè)計(jì)有一定的要求,可以避免線程安全問題。不僅控制器,而且服務(wù)和Dao都是不安全的。