Spring Session
简化集群中的用户会话管理
无需绑定容器特定解决方案
支持的存储
Redis、MongoDB、JDBC、Hazelcast
定制HttpSession
通过定制的HttpServletRequest返回定制的HttpSession
SessionRepositoryRequestWrapper
SessionRepositoryFilter
DelegatingFilterProxy
基于Redis的HttpSession
引入依赖
spring-session-data-redis
基本配置
@EnableRedisHttpSession
提供RedisConnection
实现AbstractHttpSessionApplicationInitializer
配置DelegatingFilterProxy
application.properties
spring.session.store-type=redis
spring.session.timeout=
server.servlet.session.timeout=
spring.session.redis.flush-mode=on-save
spring.session.redis.namespace=spring:session
Pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Controller
@RequestMapping("/session")
public String printSession(HttpSession session,String name){
String str = (String)session.getAttribute("name");
if(str ==null){
session.setAttribute("name",name);
str=name;
}
return "name is : "+str;
}
--摘自极客时间玩转Spring全家桶