Весенняя сессия PetClinic и HttpRequest - PullRequest
2 голосов
/ 08 декабря 2011

Я играю с приложением SpringPetClinic и думаю о том, как захватить сеанс HttpRequest для определенного запроса. Я хочу захватить уникальный идентификатор сеанса для запроса, чтобы отследить все вызовы метода, которые делает этот запрос, и связать его вместе, используя идентификатор сеанса. Идея заключалась бы в том, чтобы захватить сеанс HttpRequest в контроллере, сохранить его в переменной Threadlocal, использовать значение этой переменной и добавить его со строками журнала до вызова метода и после того, как тот же метод будет выполнен с его вызовом.

Мой вопрос: каков наилучший способ получить сеанс HttpRequest в классе контроллера проекта SpringMVC?

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Используйте метод @InitBinder с параметром типа HttpSession

@InitBinder
public void initBinder(HttpSession session) {
    myThreadLocal.set(session.getSessionId());
}
1 голос
/ 08 декабря 2011

Это должно сделать

private @Autowired HttpServletRequest request;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...