在SpringMVCController中注入HttpServletRequest物件會不會造成執行緒安全的問題
做法:
1、比如我們在Controller的方法中,通常是直接將HttpServletRequest做為引數,而為了方便節省程式碼,通常會定義為全域性變數,然後使用@Autowire注入。
說明:
1、觀察了網上的說法,好像沒有統一的解釋,有些說會執行緒安全,有些則說不會。
2、如果按照一些方法進行測試,好像也會出現,而換另一種方法測試,好像也不會出現。
3、可能和Spring的版本有關,導致測試的結果不一樣。
4、也有可能方法不對,導致測試結果不一致。
綜上結論:
1、如果是最新版本經過嚴格測試後,不會導致執行緒安全的問題,那麼可以使用。
2、如果Controller預設為單例,那麼可以將注入的HttpServletRequest物件不要設定成單例,每次都建立一個,比如@Scope(“prototype”),但這樣也就放棄了單例的有點。
3、(推薦)按照官方的寫法,其實這種做法是不太標準的,如果是規範的做法,那麼就在方法的引數上進行使用,安全且符合標準。
簡單的測試分析:
參考:
http://blog.csdn.net/albertfly/article/details/52680274
https://segmentfault.com/q/1010000005139036?_ea=803262
https://www.cnblogs.com/abcwt112/p/7777258.html
https://my.oschina.net/sluggarddd/blog/678603?fromerr=XhvpvVTi
http://www.xuebuyuan.com/1628190.html
https://www.cnblogs.com/springsource/p/6728292.html
http://blog.csdn.net/xuexuan_050848/article/details/53843955
==>如有問題,請聯絡我:easonjim#163.com,或者下方發表評論。<==
相關文章
- parallelStream中的執行緒安全問題Parallel執行緒
- lambda中stream執行緒安全的問題執行緒
- 模板方法中的執行緒安全問題執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- 遠端執行緒注入引出的問題執行緒
- JUC之集合中的執行緒安全問題執行緒
- 造成類在多執行緒時不安全的原因執行緒
- ArrayList 的執行緒安全問題執行緒
- SimpleDateFormat 執行緒安全問題ORM執行緒
- java執行緒安全問題Java執行緒
- 03 執行緒安全問題執行緒
- 主執行緒中的Looper.loop()一直無限迴圈為什麼不會造成ANR?執行緒OOP
- 在ArrayList的迴圈中刪除元素,會不會出現問題?
- 答 “SOA會不會造成IT黑洞?”
- 請教:struts中action執行緒安全問題執行緒
- 所謂的執行緒安全問題執行緒
- 深入JAVA執行緒安全問題Java執行緒
- 多執行緒,你覺得你安全了?(執行緒安全問題)執行緒
- 多執行緒-執行緒安全問題的產生原因分析以及同步程式碼塊的方式解決執行緒安全問題執行緒
- Loom會造成CPU密集型執行緒的不公平排程OOM執行緒
- java中ThreadLocal作用與執行緒安全問題Javathread執行緒
- Java 執行緒安全問題的本質Java執行緒
- 多執行緒非同步安全,安全鎖的問題執行緒非同步
- javascript 的問題 ,不知你會不會。JavaScript
- 探究Spring中Bean的執行緒安全性問題SpringBean執行緒
- 執行緒中斷以及執行緒中斷引發的那些問題執行緒
- 在windows殺oracle執行緒的問題WindowsOracle執行緒
- 單例模式中可能存在的一些問題(執行緒安全問題)單例模式執行緒
- react中在函式繫結時會馬上執行.沒有加括號不會馬上執行React函式
- Java中解決多執行緒資料安全問題Java執行緒
- 執行緒安全的單態類會影響效能麼?執行緒
- 多執行緒的安全性問題(三)執行緒
- CSS3實現動畫不會影響主執行緒,JS實現動畫會影響主執行緒CSSS3動畫執行緒JS
- 在子執行緒中建立新的窗體,遇到的問題。執行緒
- performSelector:withObject:afterDelay: 在子執行緒中呼叫不執行performSelectorObject執行緒
- 從FMDB執行緒安全問題說起執行緒
- 單例模式執行緒安全reorder問題單例模式執行緒
- Python中的greelet模組的執行緒安全問題 ( by quqi99 )Python執行緒