При использовании Spring MVC действительно легко передать HttpSession методу, просто добавив HttpSession session
к сигнатуре метода, и позже вы можете сделать что-то вроде
Integer valueFromSession = (Integer) session.getAttribute("key1")
Integer anotherValueFromSession = (Integer) session.getAttribute("key2")
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что нам нужны значения из сеанса во множестве разных методов на множестве разных контроллеров, поэтому мой вопрос заключается в том, возможно ли получить значение из сеанса и автоматически ввести это к методу и, следовательно, вместо:
@GetMapping("/something")
public String foo(HttpSession session) {
Integer valueFromSession = (Integer) session.getAttribute("key1")
Integer anotherValueFromSession = (Integer) session.getAttribute("key2")
return someMethod(valueFromSession, anotherValueFromSession);
}
Я могу иметь:
@GetMapping("/something")
public String foo(HttpSessionData dataFromSession) {
return someMethod(dataFromSession.getValue(), dataFromSession.getAnotherValue();
}
Где DataFromSession - это класс, который заполняется из HttpSession. Есть ли способ сделать это?