最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HttpServletRequest參數(shù)丟失問題及解決

 更新時間:2025年10月31日 09:55:15   作者:呼哇呼哇time  
在使用HttpServletRequest進行參數(shù)傳遞時,如果在異步方法中使用,可能會導致參數(shù)丟失,這是因為HttpServletRequest對象在異步任務中可能被回收,為了解決這個問題,可以在異步方法中提前提取參數(shù),然后將其傳遞給異步任務

HttpServletRequest參數(shù)丟失

遇到一個奇怪的問題

測試環(huán)境沒有出現(xiàn),本地連正式數(shù)據(jù)庫也沒復現(xiàn)。

主要業(yè)務邏輯是通過篩選條件從數(shù)據(jù)庫導出一批數(shù)據(jù)。異常情況是,選擇的篩選條件失效了,導致導出了全量數(shù)據(jù),這搞不好會有數(shù)據(jù)泄露風險。

已知列表分頁查詢是沒有問題的

篩選條件都能生效,代碼如下:

但是導出時卻沒起作用,導出代碼:

觀察可知,他們都調用的getSqlMap方法,該方法具體作用就是從HttpServletRequest中獲取相關條件參數(shù),并放到Map中,供后續(xù)查詢代碼使用,如下:

按常理推斷

輸入和代碼一致,得到的結果應該是一致的,但是卻不是這樣

使用jvm神器arthas,watch一下getSqlMap方法,然后分別調用列表查詢導出接口,得到如下兩條記錄

對比可知,上面有的很多參數(shù),下面一條都沒有,那么參數(shù)怎么會消失呢?數(shù)據(jù)都是從HttpServletRequest對象中獲取的,那么這個對象里面的數(shù)據(jù)怎么消失了呢?

細心的網(wǎng)友可能注意到了

我們導出方式是異步的,關鍵在@Async注解

難道莫非,HttpServletRequest被回收了,果然網(wǎng)上搜一下,很多案例

比較官方的說明

不推薦在異步中使用request,會得到不確定的結果

因此,我們需要在異步方法前提取參數(shù),再傳入

小小的問題,大大的疑惑?;瞬簧贂r間定位問題,好在爬出了坑。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

龙门县| 民权县| 琼海市| 通辽市| 正镶白旗| 尖扎县| 舞阳县| 包头市| 靖边县| 长武县| 沾化县| 资阳市| 连山| 博野县| 玉门市| 潞城市| 即墨市| 易门县| 石嘴山市| 蒙阴县| 揭西县| 京山县| 三明市| 尚义县| 荔浦县| 光山县| 建湖县| 饶河县| 奉贤区| 双城市| 孟村| 固阳县| 虎林市| 沙洋县| 张北县| 长葛市| 浮山县| 广东省| 铜梁县| 武义县| 加查县|