Skip to content

API 速查索引

本文档列出 Pragmatic DDD 所有对外暴露的核心接口与类,与源码逐一核对(版本 2.0.0)。 仅收录 public 类型;event/internal 等包内实现类不在收录范围(AbstractEventSubscriber 等用户需继承的基类除外)。

1. 领域建模(base)

类型名称说明
接口IEntity<T>实体标识契约,getEntityId()
接口IValueObject值对象标记
接口IParamObject参数对象标记
接口IEnumValue<T,K extends Enum<?>>枚举值对象,getValue() / getName() / getDesc()
接口IRule<T>规则的根契约,satisfiesRule(T)
接口IEntityPropertyCalculator<T,E,R>实体属性计算契约(继承 IDomainService
抽象类AbstractEntity<T>实体基类:ID、软删、审计、equals/hashCode
抽象类AggregateRoot<T>聚合根基类:规则、版本、事件、操作追踪
抽象类ValueObject值对象基类:结构相等
BrokenRuleObject被规则校验的对象封装
recordMessageCode规则违反消息码(localCode + description)
BrokenRule规则违反明细
抽象类BrokenRuleRegistry消息注册表基类(反射自动注册)
CompareAndSetInfo<V>乐观比较并设置辅助
异常PragmaticException框架异常基类
异常RuleException规则异常基类
异常BrokenRuleException单条规则违反异常
异常BrokenRuleAggregateException聚合规则违反异常

2. 业务规则引擎(rules)

类型名称说明
抽象类EntityRule<T extends AggregateRoot<?>>规则列表容器(实现 IRule<T> + IRuleBuild),继承并覆写 init()
接口ICheckRule<T>校验项契约,check(T, T) → RuleCheckResult
接口IRuleBuild规则构建标记
RuleItem<T>规则项封装(rule + messageCode + condition)
枚举RulePosition插入位置(LAST / BEFORE / AFTER)
枚举ActiveStatus激活状态(ACTIVE / INACTIVE)
接口IActiveRuleCondition<T>激活条件(模型级 + code 级)
AlwaysActiveRuleCondition<T>始终激活的默认条件
RuleCheckResult校验结果

3. 领域服务(service)

类型名称说明
注解@DomainService领域服务声明注解(携带分类)
枚举DomainServiceCategory领域服务分类
接口IDomainService领域服务标记接口
接口ICheckRuleService<T>第二类:业务规则领域服务标记(同时是 ICheckRule<T> 子类型)
接口IEventSubscriberService<T extends IDomainEvent>第二类:事件订阅领域服务标记
接口IAttributeCalculatorService第三类:属性计算领域服务标记
接口ICapabilityProviderService第四类:能力提供领域服务标记

4. 领域事件(event)

类型名称说明
接口IDomainEvent事件契约
抽象类BaseDomainEvent不可变事件基类
TriggeredEvents事件收集器(聚合根内部使用)
接口IEventManager事件管理器端口(spi)
接口IEventPublisher事件发布端口(spi)
接口IEventRegistry订阅者注册端口(spi)
接口IEventLifecycle生命周期端口(spi)
接口IEventSerializer事件序列化端口(spi)
接口IExecuteCondition<T>执行条件(spi)
接口ISubscriberOrderManager订阅者依赖顺序管理(spi)
接口ITopicResolverTopic 解析器(spi)
接口IEventMetrics事件指标(spi)
接口ISubscriber订阅者标记(spi)
接口IEventListener<T>事件监听器(spi,继承 ISubscriber
接口IHandle<T>事件处理契约(spi)
枚举ExecuteStatus处理执行状态(spi)
枚举DeliveryPolicy投递策略(IMMEDIATE / DELAYED)
抽象类AbstractEventSubscriber<T>事件订阅者便捷基类(实现 IEventListener<T>
ConfigurableTopicResolver可配置 Topic 解析器默认实现
ThreadPoolEventManager本地线程池事件管理器
recordLocalEventManagerConfig本地事件管理器配置
异常EventException事件异常基类
异常PublishEventException发布异常
异常RegisterDomainEventException注册异常

5. 应用服务(application)

类型名称说明
接口ICommandExecutor命令执行器契约 + tryExecute
接口IUnitOfWork工作单元契约(继承 AutoCloseable)+ tryCommit
抽象类AbstractCommandExecutor命令模板基类
抽象类AbstractUnitOfWork工作单元模板基类
CommandExecutor默认命令执行器(save 后立即 publish)
UnitOfWork默认工作单元(逐条 save → 统一 publishList)
抽象类AbstractApplicationService应用服务便捷基类
接口ICommandApplicationService命令服务标记
接口IQueryApplicationService查询服务标记
接口EntityFactory<T extends AggregateRoot<?>, C>实体工厂契约
接口EntityUpdater<T extends AggregateRoot<?>, C>实体更新器契约
recordDryRunResult试跑结果(passed + brokenRules)
接口IEntityPropertyResolver<C,E,R>实体属性解析器契约
EntityPropertyResolvers属性解析器装配工具

6. 事务性发件箱(application.outbox)

类型名称说明
OutboxCommandExecutorOutbox 命令执行器
OutboxUnitOfWorkOutbox 工作单元
EagerOutboxPublisher主动推送器(事务提交后触发)
OutboxRelayOutbox 兜底轮询器
recordOutboxRelayConfigRelay 配置:(pollInterval, grace, batchSize, maxAttempts),默认 5min / 30s / 200 / 10,支持 outbox 前缀配置绑定
OutboxMessageOutbox 消息行模型
recordOutboxEntry事件 + 消息条目
枚举OutboxStatusOutbox 状态(PENDING / PROCESSING / SENT / FAILED)
接口IOutboxStoreOutbox 存储 SPI(store / claim / markSent / release / claimPending / incrementAttempts / markFailed)
接口TransactionOperations最小事务抽象 SPI
接口TransactionCallback<T>事务回调

7. 仓储与查询投影(repository)

类型名称说明
接口IRepository<ID, T extends AggregateRoot<ID>>聚合仓储契约
抽象类AbstractRepository<ID, T extends AggregateRoot<ID>>仓储基类
接口IQueryApplicationService读侧应用服务标记(io.pragmatic.ddd.application 包)
接口IAggregateProjection聚合投影标记(仅聚合拓扑级投影实现)
接口IAggregateProjector<T, P>聚合投影器契约
抽象类AbstractAggregateProjector<T, P>投影器基类
接口IProjectionByIdSearcher<P>查询族:按主键 / 批量主键查
接口IOneQuerySearcher<P, C>查询族:按精确条件查(返回列表)
接口IListQuerySearcher<P, C>查询族:按精确条件查列表(含 TOP N)
接口IPagedQuerySearcher<P, C>查询族:分页 / 游标滚动
接口IReducer<S, X>裁剪器:全量投影 → 业务子投影
抽象类AbstractProjectionSource<T, ID, P>写读对账一体源基类(materialize / purge + readVersion / rebuild + 裁剪器持有 + sync 编排)
接口QueryCriteria / OneQueryCriteria / ListQueryCriteria / PageQueryCriteria条件族契约(query.criteria 子包)
recordPageRequest分页请求
recordPageResult<R>分页结果
recordScrollPosition游标位置
recordScrollResult<R>滚动结果

8. 读模型对账(repository.reconciliation)

类型名称说明
recordReconciliation对账任务描述
recordReplicaKey副本寻址键(聚合类型 + 副本标识),位于 repository 父包
接口IReadModelReplica<ID>副本自我维护契约(身份 / 版本读取 / 自我重建 / 残留清理),位于 repository 父包
枚举ReconciliationStatus对账状态
Reconciler对账执行器
ReconciliationManager对账管理器
ReconciliationRegistry对账注册表
接口IReconcileDedup对账去重 SPI
NoOpReconcileDedup空去重默认实现
异常ReconcileDuplicateReplicaException副本重复登记冲突
异常ReplicaNotFoundException副本未登记

9. 操作追踪(operation)

类型名称说明
接口IEntityOperation操作接口契约
EntityOperation操作描述符(code + description,final)
抽象类OperationRegistry操作注册表基类(反射自动注册)
TriggeredOperations操作收集器
异常OperationException操作异常

10. 变更追踪(track)

类型名称说明
接口ITrackable<ID>可追踪对象契约(id()
TrackedList<T extends ITrackable<ID>, ID>一对多 List 变更追踪(三桶:新增 / 修改 / 删除)
TrackedMap<K, V>一对多 Map 变更追踪(三桶)

11. 防腐层与外部依赖(acl / dependency)

类型名称说明
抽象类AbstractQueryGateway<P,R,Q,S>查询套路基类(继承式)
抽象类AbstractWriteGateway<P,R,Q,S>写入套路基类(继承式)
抽象类AbstractIdempotentWriteGateway<P,R,Q,S,K>幂等写入套路基类(先查后写)
ExternalCall组合式调用器(静态方法,final)
AclExceptions异常包装辅助(final)
接口ExternalCallLogger<Q,S>外部调用日志钩子
注解@ExternalDependency外部依赖声明
接口IDependency依赖标记接口
枚举DependencyType依赖类型(AGGREGATE / EXTERNAL_SYSTEM)
异常AclExceptionACL 异常基类
异常AclConversionException转换异常(不可重试)
异常AclCommunicationException通信异常(可重试)

12. 配置体系(config)

类型名称说明
接口IConfigurationSource配置源(L1)
MapConfigurationSource内存 Map 配置源实现
ConfigurationBinder类型化绑定工具(L2)
抽象类AbstractConfiguration门面配置基类
接口IConfigurationContext配置上下文
DefaultConfigurationContext默认配置上下文实现
接口IFeatureToggle特性开关(L3)
MapFeatureToggle内存配置源特性开关实现
枚举ToggleState开关状态(OFF / ROLLOUT / ON)
接口IGrayStrategy灰度策略 SPI
WhitelistGrayStrategy白名单灰度策略
FeatureContext灰度上下文
异常ConfigurationBindingException配置绑定异常

13. 对外广播(broadcast)

类型名称说明
接口IBroadcastMessenger广播发送端口
抽象类AbstractBroadcastSubscriber<T,P>广播订阅者基类(实现 IHandle<T>
抽象类AggregateMessageEnvelope<P>广播信封
BroadcastExceptions广播异常包装工具(final)
异常BroadcastException广播异常基类
异常BroadcastEnvelopeException信封处理异常(不可重试)
异常BroadcastSendException发送失败异常(可重试)

14. 号段 ID(base.id)

类型名称说明
接口IIdGenerator<T>ID 生成器端口
接口IIdSegmentAllocator号段分配端口
抽象类AbstractSegmentIdGenerator<T>号段模式生成器基类(实现 IIdGenerator<T>
LongSegmentIdGeneratorLong 类型号段生成器
StringSegmentIdGeneratorString 类型号段生成器
recordIdSegment号段(current / max / step)
IdGeneratorRegistryID 生成器注册中心
IdGeneratorDefinition生成器定义
枚举IdTypeID 类型(LONG / STRING)

15. MyBatis 集成(mybatis)

15.1 TypeHandler 装配

类型名称说明
recordTypeHandlerContext统一装配上下文(registerInto(sqlSessionFactory)
EnumTypeHandlerAutoConfigurer枚举通道自动装配(final)
JsonTypeHandlerAutoConfigurerJSON 通道自动装配(final)
ListTypeHandlerAutoConfigurer集合通道自动装配(final)

15.2 枚举通道

类型名称说明
UniversalEnumTypeHandler<E>通用枚举 TypeHandler
EnumValueResolver枚举解析注册表(final)
枚举EnumRule枚举持久化策略(CODE / ORDINAL 等)
接口EnumCodec枚举编解码契约
DefaultEnumCodec默认枚举编解码实现
接口EnumParseStrategy枚举解析策略

15.3 JSON 通道

类型名称说明
GenericJsonTypeHandler<T>通用 JSON TypeHandler
Fastjson2JsonSerializerFastjson2 序列化实现(同时实现 JsonSerializerIEventSerializer,final)
接口JsonSerializerJSON 序列化器 SPI
接口JdbcJsonValueJDBC 驱动适配
PgJdbcJsonValuePostgreSQL 适配(final)

15.4 集合通道

类型名称说明
ListTypeHandler集合 TypeHandler
CollectionElementTypeConfig集合配置中心(final)
CollectionMapping集合映射声明(final)
接口ElementConverter元素转换契约
SqlAliasSQL 别名(final)

15.5 基础设施实现

类型名称说明
MybatisOutboxStoreOutbox MyBatis 实现,构造 (OutboxMapper, TransactionOperations)
接口OutboxMapperOutbox Mapper(手动 addMapper 注册,XML 自动绑定,表名 outbox_message
DbSegmentAllocator号段 ID MyBatis 实现,构造 (SqlSessionFactory)
接口IdSegmentMapper号段 Mapper
IdSegmentEntity号段行实体

16. RocketMQ 集成(rocketmq)

类型名称说明
RocketMqConfig统一配置 POJO
RocketMqConfigurationRocketMQ 装配配置(继承 AbstractConfiguration,final)
RocketMqEventManagerRemoting 协议事件管理器
RocketMqGrpcEventManagergRPC 协议事件管理器
Fastjson2EventSerializerFastjson2 事件序列化实现
RocketBroadcastMessengerRocketMQ 广播发送实现(实现 IBroadcastMessenger