参考资料

1. 新建 Maven 工程

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

2. 引入 POM 依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.12</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.12</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>2.4.6</version>
</dependency>

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",如下图:


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

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

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

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

6.6 验证结束

Spring Boot 使用 Redis 共享 Session 代码示例的更多相关文章

  1. spring boot集成redis实现session共享

    1.pom文件依赖 <!--spring boot 与redis应用基本环境配置 --> <dependency> <groupId>org.springframe ...

  2. 玩转spring boot——负载均衡与session共享

     前言 当项目上线后,如果要修复bug或扩充功能,都需要重启tomcat服务.此时,正在使用应用的用户们就需要等待服务器的重启,而这就会造成不好的用户体验.还有,当仅仅只有一台tomcat服务时,如果 ...

  3. SpringBoot(三) :Spring boot 中 Redis 的使用

    前言: 这一篇讲的是Spring Boot中Redis的运用,之前没有在项目中用过Redis,所以没有太大的感觉,以后可能需要回头再来仔细看看. 原文出处: 纯洁的微笑 SpringBoot对常用的数 ...

  4. Spring Boot 2.X(六):Spring Boot 集成Redis

    Redis 简介 什么是 Redis Redis 是目前使用的非常广泛的免费开源内存数据库,是一个高性能的 key-value 数据库. Redis 与其他 key-value 缓存(如 Memcac ...

  5. 15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...

  6. SpringBoot,Security4, redis共享session,分布式SESSION并发控制,同账号只能登录一次

    由于集成了spring session ,redis 共享session,导致SpringSecurity单节点的session并发控制失效, springSession 号称 无缝整合httpses ...

  7. Spring Boot + Mybatis + Redis二级缓存开发指南

    Spring Boot + Mybatis + Redis二级缓存开发指南 背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybat ...

  8. (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】

    [本文章是否对你有用以及是否有好的建议,请留言] 本文章牵涉到的技术点比较多:Spring Data JPA.Redis.Spring MVC,Spirng Cache,所以在看这篇文章的时候,需要对 ...

  9. 玩转spring boot——结合redis

    一.准备工作 下载redis的windows版zip包:https://github.com/MSOpenTech/redis/releases 运行redis-server.exe程序 出现黑色窗口 ...

随机推荐

  1. 解决vue单页面应用做微信JSSDK注入权限时出现“invalid signature”(ios端)

    --都说微信开发多坑,没想到遇到一个天坑. 在做一个vue项目时,要用到微信JS-SDK,官方文档详见:https://developers.weixin.qq.com/doc/offiaccount ...

  2. 用python生成你想要的任意大小文件

    在测试的日常工作中,我们经常会需要测试上传文件的边界值.今天分享一段30行的简单代码,可以生成任意大小的文件,方便测试. file_size=input("请输入想要生成文件的大小:(单位M ...

  3. k8s遇到invalid type for io.k8s.api.core.v1.PodSpec.containers

    报错 error: error validating "taskcenter-v4-deployment.yaml": error validating data: Validat ...

  4. Linux移植总结--Linux中asm和arch的软链接

    @ 目录 问题 include <asm/aaa.h>实际用的是asm-arm/aaa.h include <asm/arch/memory.h>实际用的是include/as ...

  5. 从HDFS的写入和读取中,我发现了点东西

    摘要:从HDFS的写入和读取中,我们能学习到什么? 本文分享自华为云社区<从HDFS的写入和读取中,我们能学习到什么>,作者: breakDawn . 最近开发过程涉及了一些和文件读取有关 ...

  6. uoj450 【集训队作业2018】复读机(生成函数,单位根反演)

    uoj450 [集训队作业2018]复读机(生成函数,单位根反演) uoj 题解时间 首先直接搞出单个复读机的生成函数 $ \sum\limits_{ i = 0 }^{ k } [ d | i ] ...

  7. Mysql之InnoDB行格式、数据页结构

    Mysql架构图 存储引擎负责对表中的数据的进行读取和写入,常用的存储引擎有InnoDB.MyISAM.Memory等,不同的存储引擎有自己的特性,数据在不同存储引擎中存放的格式也是不同的,比如Mem ...

  8. 服务注册和发现是什么意思?Spring Cloud 如何实现?

    当我们开始一个项目时,我们通常在属性文件中进行所有的配置.随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂.有些服务可能会下降,而某些位置可能会发生变化.手动更改属性可能会产生问题.Eur ...

  9. consumer 是推还是拉?

    Kafka 最初考虑的问题是,customer 应该从 brokes 拉取消息还是 brokers 将消 息推送到 consumer,也就是 pull 还 push.在这方面,Kafka 遵循了一种大 ...

  10. 说说 RPC 的实现原理?

    首先需要有处理网络连接通讯的模块,负责连接建立.管理和消息的传输.其次需要有编解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化.剩下的就是客户端和服务器端的部分,服务器端 ...