<!-- generated-by: gsd-doc-writer -->
# 架构与开发边界

适用：Core `3.0.0-SNAPSHOT`；源码核对：2026-09-19。本文说明设计，强制规则见[规则索引](../standards/README.md)。

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

## 一次业务调用

```mermaid
flowchart TD
  HTTP[HTTP 请求与身份上下文] --> C[Controller：参数、校验、权限、响应]
  C --> S[Service：业务用例与事务]
  S --> M1[Manager：实体规则与生命周期]
  S --> M2[其他 Manager：协作实体]
  M1 --> R[Repository / Mapper：持久化]
  M2 --> R
  R --> DB[(数据库)]
```

- Controller 组合 `ICreateController` 等 Web trait，调用 Service；不直接组织跨表写入。
- Service 组合 `ICreateService` 等业务 trait，承担用例和事务边界。自定义事务需要真实 Spring 代理和正确事务管理器。
- Manager 组合 `CreateManager`、`SearchManager` 等能力，处理实体规则和生命周期；数据栈实现提供 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-base`、`ineed-core-data-base` 和业务模块的 `*-core` 契约。运行时包含同包同名的 Service/缓存类型，不能为了同时具备四栈而把两套实现都装进同一个应用 classpath。四栈对齐是在四个独立装配中验证相同业务语义。

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

## Core 与业务项目

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

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

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

## 继续阅读

- [对象模型](object-model.md)、[请求生命周期](request-lifecycle.md)
- [能力与运行时矩阵](runtime-matrix.md)
- [真实 Maven 模块清单](../core/module-inventory.md)
- [自定义业务分层](../project-development/custom-business-layering-guide.md)
- [从第一个模块开始](../getting-started/first-module.md)

源码入口：[根 POM](../../pom.xml)、[同步模块](../../ineed-core-modules/pom.xml)、[响应式模块](../../ineed-core-reactive-modules/pom.xml)。
