亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring:如何將HttpServletRequest注入到請求范圍的bean中?

Spring:如何將HttpServletRequest注入到請求范圍的bean中?

米脂 2019-10-25 11:02:37
我正在嘗試在Spring中建立一個請求范圍的bean。我已經成功設置好了,所以每個請求創建一次bean?,F在,它需要訪問HttpServletRequest對象。由于該bean是每個請求創建一次的,因此我認為容器可以輕松地將請求對象注入到我的bean中。我怎樣才能做到這一點 ?
查看完整描述

3 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

可以將請求范圍的bean與請求對象自動連接。


private @Autowired HttpServletRequest request;


查看完整回答
反對 回復 2019-10-25
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

Spring 通過type 的包裝器對象公開當前HttpServletRequest對象(以及當前HttpSession對象)。此包裝器對象綁定到ThreadLocal,可以通過調用方法獲得。ServletRequestAttributesstaticRequestContextHolder.currentRequestAttributes()


ServletRequestAttributes提供getRequest()獲取當前請求,getSession()獲取當前會話的方法以及獲取存儲在兩個范圍中的屬性的其他方法。以下代碼雖然有點難看,但應該可以在應用程序中的任何位置為您提供當前的請求對象:


HttpServletRequest curRequest = 

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())

.getRequest();

請注意,該RequestContextHolder.currentRequestAttributes()方法返回一個接口,并且需要將其類型轉換為ServletRequestAttributes實現該接口的類型。


春季Javadoc: RequestContextHolder | ServletRequestAttributes


查看完整回答
反對 回復 2019-10-25
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

如此處建議的那樣,您還可以將HttpServletRequestas作為方法參數注入,例如:


public MyResponseObject myApiMethod(HttpServletRequest request, ...) {

    ...

}


查看完整回答
反對 回復 2019-10-25
  • 3 回答
  • 0 關注
  • 1388 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號