是的,可以使用 getRequestAttributes().getRequest() 来获取当前线程的 HttpServletRequest 对象。但是需要注意,如果在异步情况下使用 getRequestAttributes().getRequest(),那么需要先使用 RequestContextHolder.setRequestAttributes(RequestAttributes) 将当前的 RequestAttributes 设置到 RequestContextHolder 中。
例如:
@Async
public void asyncMethod() {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(requestAttributes);
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
// do something with request
}