Wie kann ich die relationale datenbankbasierte Persistenz von HTTP-Sitzungen in Spring 4 durchführen?

8

Ich muss die HTTP-Sitzung in einer relationalen Datenbank speichern können, um einen statusfreien Lastenausgleich für meine Front-End-Benutzer über mehrere Front-End-Server hinweg durchführen zu können. Wie kann ich das im Frühling 4 erreichen?

Ich sehe, wie man das mit Redis machen kann, aber es scheint keine Dokumentation darüber zu geben, wie man dies mit einer relationalen Datenbank, z.B. Postgres.

    
BestPractices 14.07.2015, 01:55
quelle

2 Antworten

18

Mit Spring Session (es überschreibt transparent HttpSessions von Java EE) können Sie einfach SessionRepository interface nehmen und es mit Ihrem benutzerdefinierten ex implementieren. %Code%. Es ist leicht zu machen. Wenn Sie Ihre Implementierung haben, fügen Sie einfach manuell (Sie benötigen nicht JdbcSessionRepository Annotation) Filter für die Filterkette hinzu, wie unten:

%Vor%

Hier sehen Sie, wie @EnableRedisHttpSession interface aussieht. Es hat nur 4 Methoden zu implementieren. Um das Session-Objekt zu erstellen, können Sie in SessionRepository und MapSessionRepository implementation (oder MapSession und RedisOperationsSessionRepository ) suchen.

%Vor%

Beispiellösung Ссылка

    
Mati 17.07.2015, 12:40
quelle
-1

Schlag einfach Spring Session drauf und du bist fertig. Das Hinzufügen einer Redis-Client-Bean und das Kommentieren einer Konfigurationsklasse mit @EnableRedisHttpSession ist alles, was Sie brauchen.

    
chrylis 14.07.2015 02:43
quelle