请求、事务与生命周期
跟随请求经过校验、事务、实体生命周期和提交后的动作。
浏览全部手册
本页目录
文档来源与 Markdown 原文
权威正文:ineed-core/docs/concepts/request-lifecycle.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。
开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。
下载 Markdown 原文 ↓从请求到结果
- 应用的 Web 与安全组件解析请求、会话及操作上下文。身份和授权实现属于安全模块,Core 提供通用上下文和 Web 支撑。
- Controller 校验参数并委托 Service;统一异常处理与
ResultBuild形成响应。 - Service 在应用配置的事务边界内组织 Manager。
- Manager 执行校验、转换、生命周期钩子和持久化操作。
- 返回结果后,事务管理器完成提交或回滚;需要提交后执行的工作通过对应机制处理。
框架具体钩子的先后顺序以对应操作实现为准。不能把上面的概念顺序作为所有动作的逐行实现。
三个容易混淆的时点
| 时点 | 含义 | 不能据此保证 |
|---|---|---|
| 创建 Publisher | 构建响应式流程 | 已读库、已写库、已取得当前请求身份 |
afterSave/afterUpdate/afterPhysicsDelete |
对应 Manager 生命周期进行到该钩子 | 外层事务已提交 |
| 事务提交后 | 当前事务成功结束 | 跨进程消息可靠送达或外部调用必定成功 |
响应式的依赖解析、上下文读取、查询和副作用应发生在订阅期;通过 Mono.defer、Flux.defer 或已有默认能力组合,不在业务链中调用 subscribe() 或 block() 来启动另一条流程。测试中的阻塞等待和业务代码中的阻塞调用需区别对待。
异常必须沿调用链传播,才能维持事务回滚和统一错误语义。把错误转换成“成功空结果”可能同时破坏事务、缓存和调用方判断。
排查顺序
先确认请求是否进入目标 Controller,再检查操作身份/目标租户、参数、Manager 能力、仓储条件、事务代理,最后检查提交后工作。使用操作追踪信息关联日志,不记录完整 token 或敏感字段。
仍有疑问?按反馈清单整理复现信息 →