获取Request
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
获取Response
HttpServletresponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
注意事项:
- 不要在请求方法里另起一个子线程调用该方法;因为Spring Boot 默认使用ThreadLocal把Request设置进请求线程中,这样如果在请求方法里面另起一个子线程然后再通过getRequestAttributes方法获取,是获取不到的
- 在请求周期中,尽可能不要传递Request实例给多线程使用,因为子线程可能在Request生命周期结束销毁后再使用Request时获取不了参数,否则必须同步线程 让其在生命周期结束前调用