Przechowywanie danych sesji HTTP za pomocą sesji Spring

Ukończone

W tej lekcji dowiesz się, jak używać usługi Azure Cache for Redis do przechowywania danych sesji HTTP za pośrednictwem sesji Spring.

Sesje HTTP

Sesje HTTP przechowują dane użytkownika, zazwyczaj informacje o zabezpieczeniach, między żądaniami. Sesje HTTP mogą również przechowywać stan aplikacji lub buforować często używane dane użytkownika. Ponieważ sesje HTTP są przechowywane na serwerze, mogą stanowić problem ze skalowalnością. Należy replikować sesje, gdy aplikacja jest skalowana w poziomie do większej liczby węzłów.

Sesje HTTP są dostępne w języku Java od wczesnych dni serwletów, a technologie takie jak JavaServer Faces (JSF) używają ich mocno. Skalowanie sesji HTTP zawsze było problemem, a mechanizmy replikacji sesji istnieją we wszystkich głównych serwerach aplikacji Java.

Jednym z problemów jest to, że mechanizmy replikacji sesji HTTP nie są ustandaryzowane, ale polegają na interfejsach API specyficznych dla każdego serwera aplikacji. Ta konfiguracja może powodować problemy z przenośnością.

Sesja spring

Spring Session to podprojekt Spring, który udostępnia ogólne rozwiązanie do konfigurowania replikacji sesji HTTP. Aplikacja Spring Session obsługuje usługę Redis jako jedną z kilku opcji zaplecza. Sesja Spring replikuje wszystkie dane sesji w usłudze Redis, więc po skalowaniu aplikacji w poziomie każdy węzeł ma dostęp do sesji użytkownika.

Konfiguracja sesji spring jest podobna do poprzedniej konfiguracji usługi Spring Data i ilustruje inny zalecany scenariusz użycia usługi Redis.

Używanie sesji Spring z usługą Redis

Niektóre konfiguracje są takie same jak w przypadku usługi Spring Data Redis i trzeba to zrobić tylko raz dla obu rozwiązań. Podobnie jak w konfiguracji spring data, zazwyczaj używasz narzędzia Spring Initializr i wykonujesz następujące główne zadania:

  1. Dodaj bibliotekę Spring Session Redis do aplikacji.
  2. Skonfiguruj plik application.yml, aby nawiązać połączenie z wystąpieniem usługi Azure Cache for Redis.
  3. Użyj mechanizmu sesji HTTP języka Java do przechowywania i pobierania danych.

Przejdź do następnej lekcji, aby zaimplementować tę konfigurację.