分布式session共享配置

目录

1、spring-session

[1.1 添加依赖](#1.1 添加依赖)

[1.2 spring-mvc.xml配置文件](#1.2 spring-mvc.xml配置文件)

[1.3 web.xml](#1.3 web.xml)

2、tomcat配置session、共享

[2.1 Tomcat配置](#2.1 Tomcat配置)

[2.2 Web.xml配置](#2.2 Web.xml配置)


1、spring-session

官方文档:https://docs.spring.io/spring-session/docs/1.3.0.RELEASE/reference/html5/

1.1 添加依赖

<dependency>

<groupId>org.springframework.session</groupId>

<artifactId>spring-session-data-redis</artifactId>

<version>1.2.0.RELEASE</version>

</dependency>

1.2 spring-mvc.xml配置文件

<!-- 将session放入redis -->

<context:annotation-config/>

<bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" >

<property name="maxInactiveIntervalInSeconds" value="120" />

</bean>

<bean

class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">

<!-- redis 配置 -->

<property name="hostName" value="192.168.0.48" />

<property name="port" value="6379" />

</bean>

1.3 web.xml

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring-mvc.xml</param-value>

</context-param>

<!-- 分布式Session共享Filter -->

<filter>

<filter-name>springSessionRepositoryFilter</filter-name>

<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>

</filter>

<filter-mapping>

<filter-name>springSessionRepositoryFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

这样就可以实现分布式Session了。

注意:

1)spring的这个配置文件一定要写在web.xml的<context-param>部分,写在其他地方不行。

2)filter的名字必须是springSessionRepositoryFilter

3)如果使用了shiro,web.xml中一定要把<context-param>放在最前面,然后写shiro的Filter配置,再写spring-session的Filter配置。后面就是其他的编码和servlet配置了。

2、tomcat配置session、共享

要求Tomcat7,tomcat8不支持

2.1 Tomcat配置

编辑${TOMCAT_HOME}/conf/context.xml,在context中加入

<!-- tomcat-redis-session共享配置 -->

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"

host="localhost"

port="6379"

password="123456"

database="0"

maxInactiveInterval="60" />

Tomcat安装lib目录添加以下jar包:

2.2 Web.xml配置

<!-- 30分钟无操作,session失效 linux下有时单位为秒 -->

<session-config>

<session-timeout>30</session-timeout>

</session-config>

相关推荐
会周易的程序员20 分钟前
5Draft使用说明书
服务器·c++·分布式·raft·共识
富士康质检员张全蛋28 分钟前
Kafka实战 自定义分区器 几种常见的分区器
分布式·kafka
努力努力再努力wz1 小时前
【Redis入门系列】:从 RESP 协议到 redis-plus-plus:Redis 客户端编程与 C++ 接口设计
开发语言·数据库·c++·redis·分布式·缓存·架构
青禾8371 小时前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn
2301_800954992 小时前
Git 版本控制核心概念详解:从集中式到分布式
分布式·git
天天喝旺仔2 小时前
gRPC 流式通信实战:从一元调用到双向流,吃透四种 RPC 模式(Go 版)
分布式·http·微服务·rpc·go
明达智控技术17 小时前
告别停机内卷!热插拔远程IO,解锁工控运维新范式
分布式·物联网·自动化
漂着的圆木18 小时前
MCP 2026-07-28 长任务改造:别再用 HTTP 超时判断任务失败
分布式·架构·状态模式·ai agent
数智启示录1 天前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
数智启示录1 天前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache