一、什么是 session 的钝化和活化

假设我们在淘宝中用户过多的时候,虽然 session 没有下限,但 session 的数量就会不断增多。之后就会导致内存无法承受,此时就会有一些 session 长时间都没有活动。服务器启动时就会将这些很久没有活动的 session 放到硬盘上,让内存给空出来。就会使得很多的session被保存到硬盘上以此来空出内存。而即便之后需要再次访问 session,它就会再次从硬盘中将 session给放到内存中来使用。这样用户就不会感觉到自己掉线了。这个过程就是 session 的钝化和活化。

而钝化和活化最终都是把 session 保存到硬盘中,再从硬盘中回到内存中。
但是他们和session序列化、反序列化发生的时间点不一样。session序列化反序列化是关闭和启动服务器,session钝化和活化是没有关闭和启动服务器就完成了。

二、实现session的钝化和活化

首先要配置一下session的过期时间,session超过一分钟没有使用,那么久被存储到硬盘中
在这里插入图片描述

创建实体类Person.java,需要实现HttpSessionActivationListener和Serializeable
在这里插入图片描述
HttpSessionActivationListener有两个方法需要实现,功能分别是实体类在钝化时候调用和活化时候调用
void sessionDidActivate(HttpSessionEvent se);
void sessionWillPassivate(HttpSessionEvent se);

关注我的公众号SpaceObj 领取idea系列激活码

posted on   张伯灵  阅读(219)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)



点击右上角即可分享
微信分享提示