1.官方介绍
Spring Session 提供了一个 API 和实现来管理用户的会话信息。
Spring Session提供了一个API和实现,用于管理用户的会话信息,同时也使支持集群会话变得微不足道,而无需绑定到特定于应用程序容器的解决方案。
2.使用springboot集成springsession,session存放在redis中
2.1 添加依赖
<dependencies>
<!-- ... -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
</dependencies>
2.2 Spring Boot Configuration(spring boot 配置)
添加所需的依赖项后,我们可以创建 Spring Boot 配置。得益于一流的自动配置支持,设置 Redis 支持的 Spring Session 就像向您的 添加单个配置属性一样简单,如以下列表所示:application.properties
spring.session.store-type=redis # Session store type.
在后台,Spring Boot 应用的配置等效于手动添加注释。这将创建一个 Spring Bean,其名称为 实现 。过滤器负责替换由Spring Session支持的实现。@EnableRedisHttpSession
springSession RepositoryFilter
Filter
HttpSession
可以使用 进一步自定义,如以下清单所示:application.properties
server.servlet.session.timeout= # Session timeout. If a duration suffix is not specified, seconds is used.
spring.session.redis.flush-mode=on_save # Sessions flush mode.
spring.session.redis.namespace=spring:session # Namespace for keys used to store sessions.
第一个为session过期时间
第二个为redis刷新策略
第三个为用于存储会话的键的名称空间
3.3 redis连接配置
Spring Boot 会自动创建一个将 Spring Session 连接到端口 6379(默认端口)上 localhost 上的 Redis Server 的 Redis Server。在生产环境中,您需要更新配置以指向 Redis 服务器。例如,可以在应用程序.properties 中包含以下内容:RedisConnectionFactory
spring.redis.host=localhost # Redis server host.
spring.redis.password= # Login password of the redis server.
spring.redis.port=6379 # Redis server port.
java配置官网
Spring Sessionhttps://docs.spring.io/spring-session/docs/2.5.5/reference/html5/#httpsession-redis
3.4 在启动类上添加注解
@EnableRedisHttpSession
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallAuthServerApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallAuthServerApplication.class, args);
}
}
3.5 前后端传输序列化
/**
* @author wangli
* @create 2022-01-24 20:34
*/
@Data
public class MemberRespVo implements Serializable {
/**
* id
*/
private Long id;
/**
* 会员等级id
*/
private Long levelId;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
3.6 将session的域扩大为父域,让session可以共享