栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分布式下session共享,redis存储session

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分布式下session共享,redis存储session

在分布式开发时,不同的模块往往有不同的域名,而在当前域名下的session作用域局限于此域名,无法辐射到其他域名,即无法跨域产生作用。此时需要通过放大session的作用域来解决session共享问题。

第一步:pom文件中引入redis相关依赖(需要将session存入redis中)


    org.springframework.boot
    spring-boot-starter-data-redis


  

     org.springframework.session
     spring-session-data-redis

第二步:新建一个配置类SessionConfig,用于规定共享session的名字和作用域

@Configuration
public class GulimallSessionConfig {
    @Bean
    public cookieSerializer cookieSerializer(){
        DefaultcookieSerializer defaultcookieSerializer 
                                = new DefaultcookieSerializer();
        //设置session的作用域名,设置母域名,即可辐射到各个子域名
        defaultcookieSerializer.setDomainName("gulimall.com");
        //设置cookie的名称,这一步可有可无
        defaultcookieSerializer.setcookieName("GULISESSION");
        return defaultcookieSerializer;
    }
    //配置序列化规则,在redis中存入能让人看懂的数据,否则默认存16进制数据
    @Bean
    public RedisSerializer springSessionDefaultRedisSerializer(){
        return new GenericJackson2JsonRedisSerializer();
    }
} 

 第三步:在启动类上添加@EnableRedisHttpSession注解

@EnableRedisHttpSession
@EnableDiscoveryClient
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class GulimallSearchApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimallSearchApplication.class, args);
    }
}

第四步:在登录成功的逻辑中放入session

@PostMapping("/login")
public String login(UserLoginVo vo, RedirectAttributes redirectAttributes
                        , HttpSession session){
   R login = memberFeignService.login(vo);
   if(login.getCode()==0){
       MemberRespVo data = login.getData();
       //TODO 放入session中
       session.setAttribute(AuthServerConstant.LOGIN_USER,data);
       return "";
   }else{}
}

 完成以上步骤之后,当登录成功,spring就会将session放入 .gulimall.com的域名中,在其他分布式服务里面也能访问到其中的信息。

 

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号