您不应该HttpServletRequest
在方面方面自动进行a布线,因为这会将您的方面与只能在执行中调用的类一起运行HttpServletRequest
。
而是RequestContextHolder
在需要时使用来获取请求。
private String getRemoteAddress() {
RequestAttributes attribs = RequestContextHolder.getRequestAttributes();
if (attribs instanceof NativeWebRequest) {
HttpServletRequest request = (HttpServletRequest) ((NativeWebRequest) attribs).getNativeRequest();
return request.getRemoteAddr();
}
return null;
}