Spring Boot 使用 Redis 共享 Session 代码示例

参考资料

1. 新建 Maven 工程

我新建 spring-boot-session-redis maven 工程

2. 引入 POM 依赖


    org.springframework.boot
    spring-boot-starter-web
    2.4.12

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

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

3. 编写启动类


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * spring boot 使用 redis 共享 session 示例
 *
 */
@SpringBootApplication
public class SpringBootSessionApp
{
    public static void main( String[] args )
    {
       SpringApplication.run(SpringBootSessionApp.class, args);
    }
}

4. 编写Controller

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 测试 Controller
 * @author black
 * @date 2022-04-07 16:52:028
 */
@RestController
public class SessionController {

    @Autowired
    private Environment env;

    /**
     * 给 session 设置属性 name = black, port=当前应用端口
     * @param session
     * @return
     */
    @GetMapping("/set")
    public String setSession(HttpSession session) {
        session.setAttribute("name", "black");
        session.setAttribute("port", env.getProperty("server.port"));
        return "success";
    }

    /**
     * 获取 session 中 name 和 port 属性
     * @param session
     * @return
     */
    @GetMapping("/get")
    public String getSession(HttpSession session) {
        return String.valueOf(session.getAttribute("name") + " is set by  port:" + session.getAttribute("port"));
    }
}

5. 添加src/main/resources/application.properties配置文件

端口号
server.port=8080
redis 配置
spring.redis.host=127.0.01
spring.redis.port=6379

6. 验证

6.1 添加端口分别是8080和9090的2个启动配置

eclipse中打开SpringBootSessionApp.java启动类 ,点击右键-“Run As”-“Run Configurations”,在弹出对话框选中”Java Application”点击右键-“New Configuration”添加2个配置,分别是: SpringBootSessionApp-8080 和 SpringBootSessionApp-9090.

其中,SpringBootSessionApp-8080 的 VM arguments 添加 “-Dserver.port=8080”,SpringBootSessionApp-9090 的 VM arguments 添加”-Dserver.port=9090″,如下图:

Spring Boot 使用 Redis 共享 Session 代码示例

Spring Boot 使用 Redis 共享 Session 代码示例

6.2 启动2个应用实例

  1. 启动 8080 端口实例
    eclipse中打开SpringBootSessionApp.java启动类,,点击右键-“Run As”-“Java Application”,选择 6.1 添加的 SpringBootSessionApp-8080启动配置,然后点击OK即可.

  2. 启动 9090 端口实例
    eclipse中打开SpringBootSessionApp.java启动类,,点击右键-“Run As”-“Java Application”,选择 6.1 添加的 SpringBootSessionApp-9090启动配置,然后点击OK即可.

6.3 访问 8080 端口应用创建session

访问: http://localhost:8080/set

Spring Boot 使用 Redis 共享 Session 代码示例

6.4 浏览器访问 9090 端口应用获取session内容

访问: http://localhost:9090/get

Spring Boot 使用 Redis 共享 Session 代码示例

6.5 查看 Redis 是否存放了session信息

Spring Boot 使用 Redis 共享 Session 代码示例

6.6 验证结束

Original: https://www.cnblogs.com/lihw-study/p/16113550.html
Author: 不安分的黑娃
Title: Spring Boot 使用 Redis 共享 Session 代码示例

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608276/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springboot读取resources下文件方式

    之前使用读取resources下的json文件,后来发现不通用,在这里做一些记录。 打成jar包之后,没有办法读取里面的路径。使用流的方式进行 一:实践 1.说明 使用了org.s…

    Java 2023年5月30日
    067
  • Virtualbox下利用host-only连接方式实现虚拟机和物理机联网(包括wifi)

    https://blog.csdn.net/wordsin/article/details/80738262?utm_medium=distribute.pc_relevant_t…

    Java 2023年5月30日
    087
  • Android照相机应用

    Android在设计架构的时候,采用了mashup(混搭)的设计理念,也就是说一切都是组建,自己写的是组件,别人提供的也是组件,使用的时候只要符合相关协议就可以把他们当作自己的组件…

    Java 2023年6月7日
    081
  • 更好用 更简单的Java缓存框架 jscache

    比Spring Cache 更好用 更简单的缓存工具 jscache 取名意义为 java simple cache,基于 AOP实现,支持注解到接口 自定义单个缓存过期时间配置 …

    Java 2023年6月16日
    087
  • 2、String类

    常用方法 equals // 区分大小写,判断内容是否相等 equalsIgnoreCase // 忽略大小写的判断内容是否相等 length //获取字符的个数,字符串的长度 i…

    Java 2023年6月7日
    089
  • 同步IO, 异步IO的理解

    什么是IO? 在计算机中无时无刻不存在着对数据的访问和读取(数据都存储在物理的媒介上,例如寄存器,高速缓存,内存,磁盘,网卡等等),这些操作被称为IO。 阻塞IO 当用户线程发起I…

    Java 2023年6月6日
    0106
  • Duplicate entry ** for key **

    Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplica…

    Java 2023年6月5日
    069
  • 22.1.21 与哈希函数有关的结构

    22.1.21 与哈希函数有关的结构 out = f(in),其中in是无穷尽的,out是有穷尽的; 相同的输入经历Hash函数后能够得到相同的输出; 在很小的几率下,不同的输入也…

    Java 2023年6月13日
    079
  • java中方法的重载和重写

    一、方法的重载(Overload) 概念: 重载(overloading) 是在一个类里面,方法名字相同,而参数列表(个数、类型、参数排列顺序等)不同。返回类型可以相同也可以不同。…

    Java 2023年6月13日
    063
  • 22.2.11爬虫基础和数据解析

    find_all和find的使用:1、在提取标签的时候,第一个参数是标签的名字。如果在提取标签的时候想要使用标签属性进行过滤,那么可以在这个方法中通过关键字参数的形式,将属性的名字…

    Java 2023年6月13日
    063
  • 今天发布的一个程序一直提示Microsoft.mshtml的强名称验证失败

    软件发布后,在客户的电脑上一再提示缺失该文件或强名称验证失败, 本机的Microsoft.mshtml就两个文件, 拷到客户的机子上,均出同样提示。 后在网络上找个这个dll,该版…

    Java 2023年6月14日
    0117
  • 基于Python豆瓣自动化测试【2】

    —— Pytest基础使用教程【2】 从测试报告说起 承接上一篇中最后的测试结果图,使用过的pytest-html 插件原生态的报告的话。可能会发现 内容样式都有些不同。其实是做了…

    Java 2023年6月15日
    076
  • C语言-字符串函数的实现(二)之strcpy

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strnc…

    Java 2023年6月10日
    076
  • 国内Chrome浏览器如何访问Chrome谷歌网上应用商店(一个插件搞定,附下载地址)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月6日
    097
  • 65.走散

    sdfsf posted @2022-09-28 08:37 随遇而安== 阅读(5 ) 评论() 编辑 Original: https://www.cnblogs.com/55z…

    Java 2023年6月7日
    097
  • Elasticsearch–Logstash定时同步MySQL数据到Elasticsearch

    Logstash是elastic技术栈中的一个技术。它是一个数据采集引擎,可以从数据库采集数据到es中。我们可以通过设置自增id主键或者时间来控制数据的自动同步,这个id或者时间就…

    Java 2023年6月13日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球