Session 使用
Session 的核心价值很简单:让多次请求之间共享一点状态。
在 Feat Cloud 里,它的 API 不复杂,真正需要思考的是“我是不是该在这里使用 Session”。
最常见的用法
Section titled “最常见的用法”最简单的方式,是在 Controller 方法里直接注入 Session:
@Controllerpublic class UserController {
@RequestMapping("/visit") public String visitCount(Session session) { String count = session.get("visitCount"); int visits = (count == null ? 0 : Integer.parseInt(count)) + 1; session.put("visitCount", String.valueOf(visits)); return "Visit count: " + visits; }}这种写法很适合:
- 演示访问计数
- 保存简单登录状态
- 做轻量级用户上下文
它适合保存什么
Section titled “它适合保存什么”适合保存:
- 用户 ID
- 用户名
- 简单角色信息
- 访问计数或短期状态
不适合保存:
- 大对象
- 敏感明文数据
- 需要长期可靠持久化的业务信息
本地 Session 和 Redis Session 怎么理解
Section titled “本地 Session 和 Redis Session 怎么理解”本地 Session
Section titled “本地 Session”适合:
- 单机部署
- 开发环境
- 简单应用
Redis Session
Section titled “Redis Session”适合:
- 多实例部署
- 需要跨节点共享会话
- 明确依赖集中式 Session 存储
换句话说,选择哪种模式,决定因素通常不是业务代码,而是你的部署形态。
session.put("username", "john");String username = session.get("username");session.setTimeout(1800);String sessionId = session.getSessionId();session.invalidate();这组 API 本身并不复杂,复杂的是你如何管理状态边界。
一个更重要的问题:你真的需要 Session 吗
Section titled “一个更重要的问题:你真的需要 Session 吗”如果你的应用已经开始走向下面这些方向:
- 前后端分离
- Token 认证
- 多端登录
- 更复杂的权限和身份体系
那你通常应该更谨慎地使用 Session,而不是默认把所有状态都塞进去。
所以这页真正的建议不是“Session 很强大”,而是:
在它足够简单时用它,一旦应用边界复杂起来,就重新审视它是否还是最合适的状态模型。