1、pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</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>
2、启动类添加
- @EnableRedisHttpSession
- @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 800) //800秒过期时间
3、实际使用,这个是跨服的,可以开多个服一起公用session(通过redis)
@RestController
public class HelloController {
@Value("${server.port}")
Integer port;
@GetMapping("/set1")
public String set1(HttpSession session) {
session.setAttribute("tudou", "mongodb");
return String.valueOf(port);
}
@GetMapping("/get")
public String get(HttpSession session) {
return session.getAttribute("tudou") + ":" + port;
}
}
4、开服1:8081 服2:8082 服1set1服2get
5、session 常用命令
- 1.获取session对象:request.getSession();
- 2.给session设置值:session.setAttribute("变量名",值对象);
- 3.获取session中的值:session.getAttribute("变量名");
- 4.删除session中的值:session.removeAttribute("变量名");session.invalidate();//删除所有session中保存的键
session的removeAttribute和invalidate方法的区别:
- removeAttribute()适用于清空指定的属性。
- invalidate()是清除当前session的所有相关信息,是让当前浏览器session销毁,