Можно ли использовать Spring Boot session без Redis?
Глядя на Spring Загрузочные документы, я нашел примеры использования сеанса с Redis, возможно ли использовать его без Redis?
Ответы
Ответ 1
Как сказано в другом ответе: Да, вы можете изменить бэкэнд сохранения сеанса, изменив реализацию SessionRepository
.
И есть встроенные альтернативы, предоставляемые Spring -Session, который является MapSessionRepository
, для которого вы можете сохранить сеанс в Map
.
В образцах сеанса Spring существует образец с использованием Hazelcast в качестве основы для сохранения. Он использует вышеупомянутый MapSessionRepository
с экземпляром Map
, созданным Hazelcast.
Ответ 2
Я знаю, что я немного опаздываю на этот вопрос, но просто публикую, если другие спотыкаются на этот вопрос.
Как и в случае с Spring Session 1.2.0, существует встроенный репозиторий сессий JDBC, который можно использовать следующим образом:
@Configuration
@EnableJdbcHttpSession // default session length and DB table name can be included on the annotation
public class SessionConfiguration {
// code goes here if needed
}
В сеансе JAR сеанса Spring пакет org.springframework.session.jdbc имеет SQL-скрипты для создания структуры таблиц для разных СУБД (MySQL, Postgre и т.д.).
Я начал использовать функциональность JDBC в выпуске Spring Session 1.2.0, и у меня не было проблем на этом пути.
Ответ 3
Вы можете использовать любую технологию, которую хотите сохранить в сеансах. Spring Session предоставляет интерфейс SessionRepository
, который вы должны реализовать для хранения и получения сеансов. Поэтому просто создайте реализацию этого интерфейса с помощью технологии хранения и настройте эту реализацию как Spring bean.