簡介
本文介紹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();