SpringBoot--手动获取HttpServletRequest

原文网址:SpringBoot--手动获取HttpServletRequest_IT利刃出鞘的博客-CSDN博客

简介

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

线程安全性

是线程安全的。

猜你喜欢

转载自blog.csdn.net/feiying0canglang/article/details/126643777