在现代网络服务中,session(会话)不得不说是非常重要也是一定要实现的概念,因此在web后台开发中,对session的管理和维护是必须要实现的组件。这篇文章主要是介绍如何在Spring Boot项目中加入redis来实现对session的存储与管理。

1. 利用Spring Initializr来新建一个spring boot项目
2. 在pom.xml中添加redis和session的相关依赖。项目生成的时候虽然也会自动生成父依赖,但是1.5.3版本的spring boot的redis相关依赖有可能不能够正常工作,笔者自行在maven repository找到了比较稳定的版本如下方代码所示
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>1.5.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>1.3.0.RELEASE</version> </dependency>
3. 在application.properties中添加redis数据库的相关配置。这里为了演示使用方法只添加了相对简单的配置,即设置了session存储的数据库类型、使用的数据库号、数据库地址和端口号。实战中还会对使用非默认数据库、数据库大小、数据库最大连接数、生存时长、是否写回磁盘等许多参数进行配置
# Redis配置 spring.session.store-type=redis spring.redis.database=0 spring.redis.host=localhost spring.redis.port=6379
4. 编写一个测试的controller来验证是否能够正确地读写session。这里的controller中,我判断了当前获取的session是否是新生成的。如果是,则输出成功创建一个session对象,并返回session的id,然后在session中添加一个字段。如果session不是新生成的,即是已经存在的session,则输出session是已经存在的并返回session的id,然后再输出session中初次创建session保存的key所对应的value
@SpringBootApplication
@EnableRedisHttpSession
@RestController
public class DemoApplication {
private Logger logger = LoggerFactory.getLogger(this.getClass());
public static void main(String[] args) {
SpringApplication app = new SpringApplication(DemoApplication.class);
app.setWebEnvironment(true);
app.run(args);
}
@GetMapping("/hello")
public ResponseEntity<?> hello(HttpSession session) {
if (session.isNew()) {
logger.info("Successfully creates a session ,the id of session :" + session.getId());
session.setAttribute("key", "hello");
} else {
logger.info("session already exists in the server, the id of session :"+ session.getId());
logger.info(session.getAttribute("key").toString());
}
return new ResponseEntity<>("Hello World", HttpStatus.OK);
}
}
5. 测试代码
首先运行Redis客户端
redis-cli
查看当前数据库内容
127.0.0.1:6379> keys * (empty list or set)
运行spring boot项目
第一次浏览器访问localhost:8080/hello,如下图所示则成功运行
查看log可以看到
2017-06-12 00:26:12.601 INFO 9580 — [nio-8080-exec-1] ication$$EnhancerBySpringCGLIB$$de942542 : Successfully creates a session ,the id of session :4368a535-9bfa-406b-975c-e58c2bca1e75
再次访问localhost:8080/hello时,查看log可以看到能够正确地从redis中取出存放在session中的某个key对应的值
2017-06-12 00:30:43.533 INFO 9580 — [nio-8080-exec-5] ication$$EnhancerBySpringCGLIB$$de942542 : session already exists in the server, the id of session :4368a535-9bfa-406b-975c-e58c2bca1e75 2017-06-12 00:30:43.533 INFO 9580 — [nio-8080-exec-5] ication$$EnhancerBySpringCGLIB$$de942542 : hello
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Spring
# Boot
# Redis
# session
# Redis实现session
# SpringBoot+Shiro学习之密码加密和登录失败次数限制示例
# spring boot 1.5.4 集成shiro+cas
# 实现单点登录和权限控制
# Spring shiro + bootstrap + jquery.validate 实现登录、注册
# spring boot实战教程之shiro session过期时间详解
# SpringBoot整合Shiro的代码详解
# 详解Spring Boot 集成Shiro和CAS
# 详解Spring-Boot集成Spring session并存入redis
# 详解SpringBoot中Session超时原理说明
# spring boot与redis 实现session共享教程
# Spring Boot集成Shiro并利用MongoDB做Session存储的方法详解
# 可以看到
# 所示
# 正确地
# 放在
# 也会
# 有可能
# 会对
# 然后再
# 这篇文章
# 即是
# 来实现
# 不能够
# 创建一个
# 自动生成
# 时长
# 大家多多
# 如下图
# 是否能够
# 新建一个
# 主要是
相关文章:
太原网站制作公司有哪些,网约车营运证查询官网?
建站之星上传入口如何快速找到?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
建站主机如何安装配置?新手必看操作指南
已有域名建站全流程解析:网站搭建步骤与建站工具选择
如何在景安云服务器上绑定域名并配置虚拟主机?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何破解联通资金短缺导致的基站建设难题?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
建站之星后台管理如何实现高效配置?
IOS倒计时设置UIButton标题title的抖动问题
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
建站之星展会模板:智能建站与自助搭建高效解决方案
智能起名网站制作软件有哪些,制作logo的软件?
制作旅游网站html,怎样注册旅游网站?
建站主机选购指南:核心配置优化与品牌推荐方案
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何通过远程VPS快速搭建个人网站?
建站之星多图banner生成与模板自定义指南
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何在腾讯云服务器快速搭建个人网站?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
高端建站如何打造兼具美学与转化的品牌官网?
,怎么用自己头像做动态表情包?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
香港服务器部署网站为何提示未备案?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何选择适合PHP云建站的开源框架?
Python如何创建带属性的XML节点
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
如何快速生成专业多端适配建站电话?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何登录建站主机?访问步骤全解析
建站主机选哪种环境更利于SEO优化?
Swift开发中switch语句值绑定模式
黑客如何利用漏洞与弱口令入侵网站服务器?
广东企业建站网站优化与SEO营销核心策略指南
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
已有域名如何免费搭建网站?
小程序网站制作需要准备什么资料,如何制作小程序?
网站制作软件有哪些,制图软件有哪些?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何配置WinSCP新建站点的密钥验证步骤?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
建站主机选虚拟主机还是云服务器更好?
香港服务器租用费用高吗?如何避免常见误区?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
建站之星2.7模板快速切换与批量管理功能操作指南
建站之星安装路径如何正确选择及配置?
*请认真填写需求信息,我们会在24小时内与您取得联系。