天天看點

SpringBoot--手動擷取HttpServletRequest

簡介

        本文介紹SpringBoot如何在任意地方擷取HttpServletRequest。

        此法可以用在請求鍊中的任意地方,比如:Controller、Service、非Bean對象。

法1:getRequestAttributes(推薦)

用法

ServletRequestAttributes servletRequestAttributes =  
        (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();      
RequestContextHolder.setRequestAttributes(RequestContextHolder.getRequestAttributes(), true);      

法2:currentRequestAttributes

ServletRequestAttributes servletRequestAttributes =  
        (ServletRequestAttributes)RequestContextHolder.currentRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();      

線程安全性