Spring 如何保證 Controller 并發(fā)的安全?

Spring 多線程請求過來調(diào)用的Controller對象都是一個,而不是一個請求過來就創(chuàng)建一個Controller對象。

并發(fā)的安全?
原因就在于Controller對象是單例的,那么如果不小心在類中定義了類變量,那么這個類變量是被所有請求共享的,這可能會造成多個請求修改該變量的值,出現(xiàn)與預(yù)期結(jié)果不符合的異常

那有沒有辦法讓Controller不以單例而以每次請求都重新創(chuàng)建的形式存在呢?
答案是當然可以,只需要在類上添加注解@Scope("prototype")即可,這樣每次請求調(diào)用的類都是重新生成的(每次生成會影響效率)

雖然這樣可以解決問題,但增加了時間成本,總讓人不爽,還有其他方法么?答案是肯定的!

使用ThreadLocal來保存類變量,將類變量保存在線程的變量域中,讓不同的請求隔離開來。


技術(shù)討論 & 疑問建議 & 個人博客

版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 3.0 許可協(xié)議,轉(zhuǎn)載請注明出處!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,798評論 11 349
  • 華為和小米這兩年的快速崛起與它們推出的千元機占據(jù)國內(nèi)市場大量份額有很大關(guān)系,三星在國外鞏固自家的市場份額后,一季度...
    969227e884b9閱讀 223評論 0 0
  • 在導(dǎo)入的過程中遇到一些問題,記錄一一下給需要的小伙伴一些提示,好了開始了。 1:所需的工具Git和Gradle,以...
    平行線閱讀 3,521評論 4 7
  • 本來以為是黎明前的黑暗,但現(xiàn)在越來越有漫漫長夜的味道了。 我感覺自己應(yīng)該寫點什么了。 作為投資區(qū)塊鏈近一年的小朋友...
    皮皮魯魯西西_35e7閱讀 579評論 0 1

友情鏈接更多精彩內(nèi)容