我正在使用SpringPetClinic应用程序,我正在考虑如何捕获特定请求的HttpRequest会话。我想捕获请求的唯一会话ID,以跟踪此请求所做的所有方法调用,并使用session-id将它绑定在一起。我们的想法是在控制器中获取HttpRequest会话,将其存储在Threadlocal变量中并使用此变量的值,并在调用方法之前以及在调用相同方法之后将其附加日志字符串。
我的问题是,在SpringMVC项目的控制器类中获取HttpRequest会话的最佳方法是什么?
答案 0 :(得分:2)
使用@InitBinder
method参数类型HttpSession
@InitBinder
public void initBinder(HttpSession session) {
myThreadLocal.set(session.getSessionId());
}
答案 1 :(得分:1)
这应该
private @Autowired HttpServletRequest request;