一、整合springSesion
1、引入依赖
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
2、添加配置信息
#redis连接配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
#存储类型
spring.session.store-type=redis
#过期时间
server.servlet.session.timeout=30m
3、开启Redis作为session的存储,在启动类上添加注解 @EnableRedisHttpSession
4、实现 Serializable 接口序列化
5、 登录控制类中设置添加session
public void hi(@RequestParam("code") String code, HttpSession session) throws Exception{
session.setAttribute("loginUser",data);
}
到此成功整合springSesion等springboot项目中了
二、解决子域session共享问题
1、目的:自定义Cookie内容
2、在项目中添加两个Bean配置类,设置自己要修改的信息
@Configuration
public class XlmallSessionConfig {
//扩大session作用域,自定义session
@Bean
public CookieSerializer cookieSerializer(){
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setDomainName("xlmall.com");
serializer.setCookieName("XLMALLSESSION");
return serializer;
}
//添加序列化器
@Bean
public RedisSerializer<Object> springSessionDefaultCookieSerializer(){
return new GenericJackson2JsonRedisSerializer();
}
}
至此就配置完成了,只要是在xlmall.com的子域名都能共享同一个session