跳至主要內容

分布式session

blogresJavaCloudsession约 186 字小于 1 分钟

分布式session

分布式 session

7.1 分析

7.2 解决session已知弊端

使用第一种,但是存在子域名问题,所以使用SpringSession

7.3 开始

7.3.1 依赖、启动类

<!-- 整合springsession -->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>
@EnableRedisHttpSession     //开启springsession

7.3.2 配置,放大作用域

@Configuration
public class SessionConfig{
   @Bean
   public CookieSerializer cookieSerializer(){
      DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
      //放大作用域
      cookieSerializer.setDomainName("yumall.com");
      cookieSerializer.setCookieName("YUMALLSESSION");
      return cookieSerializer;}
   @Bean
   public RedisSerializer<Object> springSessionDefaultRedisSerializer(){
      return new GenericJackson2JsonRedisSerializer();}}
spring.session.store-type=redis
server:
  servlet:
    session:
      timeout: 30m

7.3.2 开始

session.setAttribute(LOGIN_USER, data);
<li>
    <a th:if="${session.loginUser != null}">欢迎, [[${session.loginUser.nickname}]]</a>
    <a th:if="${session.loginUser == null}" href="http://auth.yumall.com/login.html">你好,请登录</a>
</li>