Spring Boot中获取当前Request和Response实例的方法

2023-11-18

获取Request

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

获取Response

HttpServletresponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

注意事项:

  1. 不要在请求方法里另起一个子线程调用该方法;因为Spring Boot 默认使用ThreadLocal把Request设置进请求线程中,这样如果在请求方法里面另起一个子线程然后再通过getRequestAttributes方法获取,是获取不到的
  2. 在请求周期中,尽可能不要传递Request实例给多线程使用,因为子线程可能在Request生命周期结束销毁后再使用Request时获取不了参数,否则必须同步线程 让其在生命周期结束前调用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot中获取当前Request和Response实例的方法 的相关文章

随机推荐