0
点赞
收藏
分享

微信扫一扫

SpringBoot--手动获取HttpServletRequest


简介

        本文介绍SpringBoot如何在任意地方获取HttpServletRequest。

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

法1:getRequestAttributes(推荐)

用法

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

说明

它可以让新建的子线程也获取到attribute,方法是:

RequestContextHolder.setRequestAttributes(RequestContextHolder.getRequestAttributes(), true);

法2:currentRequestAttributes

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

线程安全性

是线程安全的。

举报

相关推荐

0 条评论