Heim >Java >javaLernprogramm >Einführung in die Methode zur Integration von Spring Session und Spring Boot zur Realisierung der Sitzungsfreigabe

Einführung in die Methode zur Integration von Spring Session und Spring Boot zur Realisierung der Sitzungsfreigabe

不言
不言nach vorne
2019-02-19 15:56:422233Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in die Methode zur Integration von Spring Session und Spring Boot. Er hat einen gewissen Referenzwert. Ich hoffe, er wird Ihnen hilfreich sein.

Kürzlich wurde mit Spring Boot ein System entwickelt, das den Lastausgleich durchführt und Anforderungen an mehrere Tomcats verteilt. Die Sitzung wird auf der Serverseite verteilt Wenn der erste Besuch auf Server A verteilt wird, wird die Sitzung auf Server A gespeichert und der Lastausgleich wird auf Server B verteilt. Dann können die Sitzungsinformationen, auf die zum ersten Mal zugegriffen wird, nicht abgerufen werden Vorherige Sitzungsinformationen, daher muss eine Sitzungsfreigabe implementiert werden, die durch einfache Konfiguration erreicht werden kann. Folgendes wird eingeführt:

<!-- Spring Boot Redis 依赖  -->
	<dependency>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-data-redis</artifactId>
	</dependency>
    
    <dependency>  
        <groupId>org.springframework.session</groupId>  
        <artifactId>spring-session-data-redis</artifactId>  
	</dependency>   
	
	<dependency>
	    <groupId>org.springframework.session</groupId>
	    <artifactId>spring-session-core</artifactId>
	</dependency>

pom.xml 2. RedisSessionConfig-Konfigurationsklasse hinzufügen

Erstellen Sie im Projektverzeichnis eine Java-Datei (mit einem beliebigen Namen). Mein Name ist RedisSessionConfig.java

@EnableRedisHttpSession Wichtig: Nach dem Hinzufügen wird die Bean so konfiguriert, dass Spring eine Verbindung zu Redis gemäß der Konfiguration in der Konfigurationsdatei herstellen kann.

SpringSession Beachten Sie, dass für Redis Version 2.8 oder höher erforderlich ist. Fügen Sie dann

notify-keyspace-events Ex  // 打开此配置,其中Ex表示键事件通知里面的key过期事件,每当有过期键被删除时,会发送通知

zur Redis-Konfigurationsdatei hinzu oder verwenden Sie den folgenden Befehl, um die Ereignisbenachrichtigung zu aktivieren:

redis-cli config set notify-keyspace-events Egx

Wenn Ihr Redis nicht von Ihnen selbst verwaltet wird, beispielsweise wenn Sie die Redis-Datenbank von Alibaba Cloud verwenden (dies ist mein Fall) und Sie deren Konfiguration nicht ändern können, können Sie die folgende Java-Konfigurationsdatei verwenden.

package org.spring.springboot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.ConfigureRedisAction;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@Configuration
// maxInactiveIntervalInSeconds 默认是1800秒过期,这里测试修改为60秒
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)
public class RedisSessionConfig {
	
	@Bean
	public static ConfigureRedisAction configureRedisAction() {
		return ConfigureRedisAction.NO_OP;
	}
}

3. Redis-Verbindung konfigurieren

Spring Boot erstellt automatisch eine RedisConnectionFactory, um die Spring-Sitzung mit dem Redis-Server auf localhost auf Port 6379 (Standardport) zu verbinden. In einer Produktionsumgebung müssen Sie sicherstellen, dass Sie die Konfiguration so aktualisieren, dass sie auf den Redis-Server

src/main/resources/application.properties

# Redis 配置
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=1234
verweist

Das obige ist der detaillierte Inhalt vonEinführung in die Methode zur Integration von Spring Session und Spring Boot zur Realisierung der Sitzungsfreigabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen