# 在业务应用中集成 DSM

## When to use

在 Java 或 Spring Boot 应用增加 DSM，或收敛散落的 raw collection 调用时使用本任务。

## Inspect first

- 找到业务端口、装配入口、配置来源、生命周期和现有集成测试。
- 检查 locator、entity、codec、schema 和通信域身份。
- 阅读[领域适配](/zh-CN/15-domain-adapter.html)与[Spring 装配](/zh-CN/16-spring-boot.html)。

## Required inputs

取得领域动作、状态分类、集合选择、命名空间、序列化合同、失败传播方式和测试环境。

## Implementation path

1. 让业务层依赖领域端口，不直接散布 DSM locator。
2. 在 adapter 或 composition root 集中创建 Runtime 和 typed collection。
3. 在启动阶段验证属性、codec、schema 和 collection 注册。
4. 明确 `RUNNING`、readiness、freeze 和 close 的调用顺序。
5. 建立 E1 fake、E2 单进程、E3 受控多节点和必要的 E4 真实端口证据。

## Constraints

- fake 验证业务端口合同，不证明 DSM 网络、复制或 repair。
- Spring context 启动不代表多节点行为成立。
- `tenantId/applicationId` 通信域与 `collectionId` 集合域承担不同隔离责任。

## Failure patterns

- 在业务服务各处重复构造 locator。
- 将启动后配置错误延迟为运行期失败。
- 测试报告为 0 项或 skipped 时仍记录通过。

## Validation

先运行领域端口测试，再运行 DSM adapter、Spring context 和受控多节点测试。报告每层可以证明和不能证明的内容。

## Evidence

- [DSM 官方示例](https://github.com/leanowtech/dsm-examples/tree/0eca40d69e4ac5e01d7f82e75feec761ce1c101e)
- [验证范围](/agent/zh-CN/v/0.1.2/reference/validation-scopes.md)
- [来源与结论纪律](/agent/zh-CN/v/0.1.2/policies/source-and-claim-discipline.md)
