架构与概念

请求、事务与生命周期

跟随请求经过校验、事务、实体生命周期和提交后的动作。

浏览全部手册
本页目录
文档来源与 Markdown 原文

权威正文:ineed-core/docs/concepts/request-lifecycle.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。

开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。

下载 Markdown 原文 ↓

从请求到结果

  1. 应用的 Web 与安全组件解析请求、会话及操作上下文。身份和授权实现属于安全模块,Core 提供通用上下文和 Web 支撑。
  2. Controller 校验参数并委托 Service;统一异常处理与 ResultBuild 形成响应。
  3. Service 在应用配置的事务边界内组织 Manager。
  4. Manager 执行校验、转换、生命周期钩子和持久化操作。
  5. 返回结果后,事务管理器完成提交或回滚;需要提交后执行的工作通过对应机制处理。

框架具体钩子的先后顺序以对应操作实现为准。不能把上面的概念顺序作为所有动作的逐行实现。

三个容易混淆的时点

时点 含义 不能据此保证
创建 Publisher 构建响应式流程 已读库、已写库、已取得当前请求身份
afterSave/afterUpdate/afterPhysicsDelete 对应 Manager 生命周期进行到该钩子 外层事务已提交
事务提交后 当前事务成功结束 跨进程消息可靠送达或外部调用必定成功

响应式的依赖解析、上下文读取、查询和副作用应发生在订阅期;通过 Mono.deferFlux.defer 或已有默认能力组合,不在业务链中调用 subscribe()block() 来启动另一条流程。测试中的阻塞等待和业务代码中的阻塞调用需区别对待。

异常必须沿调用链传播,才能维持事务回滚和统一错误语义。把错误转换成“成功空结果”可能同时破坏事务、缓存和调用方判断。

排查顺序

先确认请求是否进入目标 Controller,再检查操作身份/目标租户、参数、Manager 能力、仓储条件、事务代理,最后检查提交后工作。使用操作追踪信息关联日志,不记录完整 token 或敏感字段。

详见事务与并发租户与上下文事件删除生命周期

仍有疑问?按反馈清单整理复现信息 →