用于存储分布式用户会话
导入依赖:
<!--springsession-->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<!--若报org.springframework.session.web.authentication.RememberMeServices错误则需要引入安全框架依赖-->
<!--安全框架-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
yml配置
spring:
session:
store-type: redis # session存储的类型位置
启动类:
@EnableRedisHttpSession //开启使用redis作为spring session
/**
* 若手动删除cookie的userInfo,springsecurity的安全机制会让你重新登录,若不想要这样可以排除自动装配
* 排除权限的自动装配
*/
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
使用:
@GetMapping("/setSession")
public Object setSession(HttpServletRequest request){
HttpSession session = request.getSession();
session.setAttribute("userInfo","new user");
session.setMaxInactiveInterval(3600);
session.getAttribute("userInfo");
// session.removeAttribute("userInfo");
return "ok";
}
访问该接口后,redis会自动生成springsession相关内容: