如果我使用
@Autowired HttpServletRequest httpServletRequest;
我得到一个错误:
未找到线程绑定的请求:您是否在引用请求属性 在实际的Web请求之外,或在外部处理请求 最初的接收线程?如果您实际在 一个网络请求,但仍然收到此消息,您的代码可能是 在DispatcherServlet / DispatcherPortlet外部运行:在这种情况下, 使用RequestContextListener或RequestContextFilter公开 当前请求。
然后在谷歌搜索中,我被要求使用:
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
我能够从请求中获取IP地址。我的查询是,如果在多个并行请求中使用Async方法中的IP地址,该IP地址是否正确?
这是一个Spring MVC应用程序。是否有更好的方法来获取IP地址。我想在自定义提供程序中记录IP地址。
答案 0 :(得分:0)
我认为您使用错误的方式。
您可以在控制器方法调用中获得HttpServletRequest
。
@RestController
public class SomeController {
@RequestMapping(path = "/dosmtng")
public void doSomething(HttpServletRequest request, <other params>){
....
}
}
例如,像这样。 因此,您可以在此处从请求中获取必要的属性,然后将其放入其他方法中。