方案一
可以将HttpServletRequest 以成员的方式注入到控制器中,和原来直接加在方法参数里是一个效果。
@RestController
public class Controller{
private final HttpServletRequest httpServletRequest;
@Autowired
public Controller(HttpServletRequest httpServletRequest) {
this.httpServletRequest = httpServletRequest;
}
@Override
public ResponseEntity<String> test() {
}
}
方案二
直接通过静态方法RequestContextHolder.getRequestAttributes()获取
ServletRequestAttributes servletRequestAttributes
= (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (servletRequestAttributes != null) {
HttpServletRequest httpServletRequest = servletRequestAttributes.getRequest();
}