В Spring есть несколько способов хранения временных данных в рамках одной сессии.
1. HttpSession: Spring предоставляет доступ к HttpSession, который может использоваться для хранения данных на сервере между запросами. Вы можете получить доступ к HttpSession через HttpServletRequest в контроллерах или сервлетах.
Пример использования HttpSession в Spring-контроллере:
```
@GetMapping("/data")
public String getData(HttpSession session) {
session.setAttribute("key", "value");
return "data";
}
@GetMapping("/data")
public String getData(HttpSession session) {
String value = (String) session.getAttribute("key");
//...
return "data";
}
```
2. Spring Session: Spring Session - это проект, предоставляющий расширенную функциональность управления сессиями для Spring. Он позволяет хранить данные сессии внутри кэша (например, Redis) вместо сервера. Это можно использовать для распределенного хранения данных сессии в микросервисной архитектуре. Чтобы использовать Spring Session, вам необходимо добавить зависимость в ваш проект и настроить подключение к кэшу. После этого вы можете использовать аннотацию @EnableRedisHttpSession для включения поддержки распределенных сессий.
Пример использования Spring Session:
```
@GetMapping("/data")
public String getData(HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("key", "value");
return "data";
}
@GetMapping("/data")
public String getData(HttpServletRequest request) {
HttpSession session = request.getSession();
String value = (String) session.getAttribute("key");
//...
return "data";
}
```
Оба этих подхода позволяют хранить и получать данные в рамках одной сессии в Spring. Вы можете выбрать подход, который лучше соответствует вашим потребностям.