SpringSession(redis)
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wzq</groupId>
    <artifactId>session</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>session</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--spring-session-data-redis-->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>
        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
application.yml
server:
  servlet:
    session:
      timeout: 3600s
spring:
  application:
    name: sesion
  session:
    store-type: redis
    redis:
      namespace: spring:session
    timeout: 3600s
  redis:
    database: 1
    host: 192.168.0.45
    port: 6379
    password: 123456
    timeout: 20000
    lettuce:
      pool:
        pool:
          max-active: 8
          max-wait: -1
          max-idle: 8
          min-idle: 0
run.class
package com.wzq.session;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
@SpringBootApplication
/**
 * maxInactiveIntervalInSeconds 设置session超时时间 默认 30分钟
 */
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 5000)
public class SessionApplication {
    public static void main(String[] args) {
        SpringApplication.run(SessionApplication.class, args);
    }
}
SpringSessionConfig.java
package com.meeno;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;
//import org.springframework.session.web.http.CookieSerializer;
//import org.springframework.session.web.http.DefaultCookieSerializer;
/**
 * @Author: GoslingWu
 * @Date: Created in 2020/10/22
 * @Description:
 */
@Configuration
public class SpringSessionConfig {
    @Bean
    public CookieSerializer httpSessionIdResolver() {
        DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
        cookieSerializer.setUseHttpOnlyCookie(false);
        cookieSerializer.setSameSite("None");
        return cookieSerializer;
    }
}
test方法
package com.wzq.session.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
/**
 * @description: 测试Controller
 * @author: Wzq
 * @create: 2020-09-03 14:37
 */
@RestController
@RequestMapping
public class TestController {
    /**
     * 登录
     * @param session
     * @return
     */
    @RequestMapping("login")
    public String login(HttpSession session,String msg){
        session.setAttribute("msg",msg);
        return session.getId();
    }
    /**
     * 测试方法
     * @param session
     * @return
     */
    @RequestMapping("test")
    public Map<String, Object> test(HttpSession session){
        String sessionId = session.getId();
        Object msg = session.getAttribute("msg");
        Map<String,Object> map = new HashMap<>();
        map.put("sessionId", sessionId);
        map.put("msg", msg);
        return map;
    }
}
SpringSession(redis)的更多相关文章
- Spring-session redis 子域名 session
		Spring-session & redis 子域名共享session 例子: a.example.comb.example.comSpring 版本 4.2.6.RELEASE Spring ... 
- 转:Spring-session & redis 子域名共享session
		Spring-session & redis 子域名共享session 例子: a.example.com b.example.com spring 版本 4.2.6.RELEASE Spri ... 
- Spring-session+Redis解决Session共享
		1. 保证Redis启动 2. 导入依赖 SpringBoot+Spring-Session+Redis <!--spring boot 与re ... 
- springboot 集成spring-session redis 实现分布式session
		gradle 添加依赖 compile("org.springframework.session:spring-session:1.3.0.RELEASE") compile(&q ... 
- spring-session+Redis实现Session共享
		关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复 ... 
- 学习Spring-Session+Redis实现session共享
		1.添加依赖 <dependency> <groupId>org.springframework.session</groupId> <artifactId& ... 
- 分布式集群环境下,如何实现session共享五(spring-session+redis 实现session共享)
		这是分布式集群环境下,如何实现session共享系列的第五篇.在上一篇:分布式集群环境下,如何实现session共享四(部署项目测试)中,针对nginx不同的负载均衡策略:轮询.ip_hash方式,测 ... 
- SpringBoot SpringSession redis  共享 SESSION
		号称无缝整合httpsession 共享, 但注意如果存在第三方框架,例如SESSION并发控制,这个是需要自己重写session名单的. 关于redis session 共享 的session并发控 ... 
- SpringBoot SpringSession redis  SESSION
		号称无缝整合httpsession 共享, 但注意如果存在第三方框架,例如SESSION并发控制,这个是需要自己重写session名单的. 关于redis session 共享 的session并发控 ... 
随机推荐
- Shell循环语句for、while、until
			Shell循环语句for.while.until 一.条件测试 二.删除字符 三.循环语句 示例1 ... 
- [刘阳Java]_Spring AOP注解详细介绍_第8讲
			这节内容非常关键,我们会比较详细地介绍Spring AOP注解的使用 1. 要使用Spring AOP注解,必须满足如下的事项 导入Aspectj的jar.Spring3.0-AOP.jar.aopa ... 
- Pytest单元测试框架之setup/teardown模块示例操作
			"""模块级(setup_module/teardown_module)开始于模块始末,全局的函数级(setup_function/teardown_function)只 ... 
- java反序列化提取payload之xray 高级版的shiro回显poc的提取过程
			本文中xray高级版shiro payload来源于雷石安全实验室公众号发布的shiroExploit.jar 感谢雷石安全实验室,雷石安全实验室牛逼 本文主要描述如何从shiro的payload中提 ... 
- 小师妹学IO系列文章集合-附PDF下载
			目录 第一章 IO的本质 IO的本质 DMA和虚拟地址空间 IO的分类 IO和NIO的区别 总结 第二章 try with和它的底层原理 简介 IO关闭的问题 使用try with resource ... 
- ThinkPHP中使用Verify类生产验证码不显示的原因
			今天在做网站部署的时候,发现登录页面的验证码显示不出来了,而且不报任何错误. 直接通过url访问该操作也不能显示. 后来在网上查找了一些解决方法. 在调用$verify = new \Think\Ve ... 
- div 模拟alert弹出框
			--------------信息展示弹出框---------------- <style> .over{background-color: rgba(0, 0, 0, 0.7);displ ... 
- Verilog function的使用
			function的用法 function的标准写法如下: function <返回值的类型或是范围> (函数名): <端口说明语句> //input xxx <变量类 ... 
- 华为高斯DB(for MySQL)搭建演示
			产品架构 云数据库 GaussDB(for MySQL)整体架构自下向上分为三层. 存储层: 基于华为DFV存储,提供分布式.强一致和高性能的存储能力,此层来保障数据的可靠性以及横向扩展能力. 存储抽 ... 
- 图解 HTTP 连接管理
			熟悉我的小伙伴都知道,我之前肝了本<HTTP 核心总结>的 PDF,这本 PDF 是取自我 HTTP 系列文章的汇总,然而我写的 HTTP 相关内容都是一年前了,我回头看了一下这本 PDF ... 
