比如有個類的靜態屬性,第一次請求時給值了,第二次請求時這個值還在,這個是不是跟Tomcat的請求是執行緒級的有關?
如果我希望每次請求都是互相獨立的,應該怎么實作(靜態屬性有全域的作用,不能用實體屬性替換)?
uj5u.com熱心網友回復:
threadlocal應該能滿足lz的需求uj5u.com熱心網友回復:
瀏覽器快取吧uj5u.com熱心網友回復:
不是,是后臺java這里的值uj5u.com熱心網友回復:
其實我就是想保證前端一次請求和一個Tomcat的處理執行緒是一一對應的,不要后面一次請求能拿到前面一次請求賦值的資料
uj5u.com熱心網友回復:
定義成普通的成員變數,不要用靜態uj5u.com熱心網友回復:
ThreadLocal<String> curreantString = new ThreadLocal<>();這樣就可以了
uj5u.com熱心網友回復:
ThreadLocal 可以解決uj5u.com熱心網友回復:
我要跨類傳資料的,不可能全都通過引數傳的。
靜態和實體的用途不一樣,不是一個可以取代另一個的關系。
uj5u.com熱心網友回復:
這樣定義代碼可讀性不好,其實這不是一個應用層代碼應該解決的問題,而是web容器在啟動資源方式的問題。
我自己在作業里的開發平臺,就沒碰到過這種問題,都是一個請求對應一個處理程式的,請求結束了所有資源就釋放了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/211293.html
標籤:Java EE
上一篇:vscode除錯java程式報錯
