架构与概念

架构与开发边界

用能力接口组合业务,明确 Web、Service、Manager 与持久化的职责。

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

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

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

下载 Markdown 原文 ↓

适用:Core 3.0.0-SNAPSHOT;源码核对:2026-09-19。本文说明设计,强制规则见规则索引

Ineed-Core 将 Web、业务能力与持久化实现分开。业务模块通过组合能力接口获得 CRUD、查询、状态、排序等行为,再在明确的扩展点加入领域规则。

一次业务调用

调用链:HTTP 与身份上下文经过 Controller、Service,组合多个 Manager,经 Repository 或 Mapper 访问数据库。

打开架构图原图

  • Controller 组合 ICreateController 等 Web trait,调用 Service;不直接组织跨表写入。
  • Service 组合 ICreateService 等业务 trait,承担用例和事务边界。自定义事务需要真实 Spring 代理和正确事务管理器。
  • Manager 组合 CreateManagerSearchManager 等能力,处理实体规则和生命周期;数据栈实现提供 operation、converter 和查询表达式。
  • Repository 或 MyBatis-Flex Mapper 执行数据访问。外键 count/exists/delete/findBy 由具体仓储封装。

标准 CRUD 的不少代码在接口默认方法中。阅读业务类时,应继续跳转其能力接口;空方法体或很短的业务类并不表示行为缺失。

两种运行时、四条关系型数据路径

运行时 Web 业务引擎 数据适配
阻塞式 ineed-core-webmvc ineed-core-engine JPA / JDBC / MyBatis-Flex 三选一
响应式 ineed-core-webflux ineed-core-engine-reactive R2DBC

两条运行时共享 ineed-core-baseineed-core-data-base 和业务模块的 *-core 契约。运行时包含同包同名的 Service/缓存类型,不能为了同时具备四栈而把两套实现都装进同一个应用 classpath。四栈对齐是在四个独立装配中验证相同业务语义。

聚合 POM 决定哪些模块参加构建;BOM 只管理版本;starter 是否具备自动配置取决于代码。ineed-core-starters 当前主要聚合 Druid,不能假设添加一个通用 starter 就能装配完整业务应用。

Core 与业务项目

Core 管理技术契约、上下文、通用生命周期和适配器。业务模块管理字段、关系、业务状态机、业务权限及错误语义。应用项目选择实现、配置环境并启动。

通用 PUBLISHED 状态位不包含审核流、内容版本或发布历史;这些属于具体业务模型。跨进程可靠事件投递、业务幂等和并发控制也不能从 CRUD 默认方法推导出来。

跨模块共享接口放在提供该契约的 *-core 中;阻塞式 service/ 和响应式 service/reactive/ 分开。模块内业务编排保持 Service → Manager,不以跨模块需求为由随意新增平行编排层。具体跨域桥接先明确调用方、契约方、实现方及事务边界。

继续阅读

源码入口:根 POM同步模块响应式模块

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