参考资料

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. 《Unity shader入门精要》复习<第13章 关于NDC坐标和深度/法线纹理>

    分为三个地方讲解. NDC(Normalize Device Coordinates)归一化的设备坐标 NDC坐标是世界空间坐标通过MVP变换之后再进行归一化得到的坐标.只需要再一步变换就能得到屏幕空 ...

  2. 基于AE的基础的GIS系统的开发

    一个GIS系统需要的基本功能的代码 一些基本的拖拽操作就不讲了,直接上代码吧.   1. 打开.mxd文件 基本思路:判断mxd路径存在→打开mxd文件 string filename = Appli ...

  3. 使用阿里巴巴开源镜像站镜像——Kubernetes 镜像

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 Kubernetes 镜像简介 Kubernetes 是一个开源系统,用于容器化应用的自动部署.扩缩和管理.它将构成应用的容器按逻辑单位进行分组以 ...

  4. kubernetes里kube-proxy的ConfigMap误删除处理

    由于想要开启ipvs,没想到把cm当成pod删除了....然后就开始了修复之路 ConfigMap介绍 ConfigMap是一种API对象,用来将非加密数据保存到键值对中.可以用作环境变量.命令行参数 ...

  5. django之model,crm操作

    一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 pr ...

  6. 7月2日 Django注册页面的form组件

    forms.py里注册页面的form组件 # Create your views here. class RegForm(forms.Form): username = forms.CharField ...

  7. 关于Gradle 6.x及以上版本发布到仓库有很多CheckSum文件,想去除?

    写在前边 今天写的这个博客和平时的博客有点区别,大多数都是告诉你解决问题的,而本文不完全是. 经常使用Gradle的都知道 Gradle有两个发布制品到Maven仓库的插件:maven 与 maven ...

  8. 记-beego项目调用Jenkins API获取job信息

    type JenkinsController struct { beego.Controller } type Job struct { Name string `json:"name&qu ...

  9. Vue实例(1)

    vue入门示例(一) herokang 2019-08-21 15:33:58  12696  收藏 44 分类专栏: 前端 文章标签: vue入门 版权 为了让广大后端人员更快的理解上手vue,我们 ...

  10. 面试官:知道ThreadLocal嘛?谈谈你对它的理解?(基于jdk1.8)

    https://zhuanlan.zhihu.com/p/99150038   ​ 西北工业大学 计算机技术硕士在读 在java的多线程模块中,ThreadLocal是经常被提问到的一个知识点,提问的 ...