知识卡片
应用服务承担横切关注点与异常分层转换
内容
实现应用服务需考虑:其测试为集成测试(需setup/teardown准备清除数据、准备运行环境);依赖管理(应用服务、领域服务、资源库之间的依赖,确定依赖注入框架);消息契约对象定义(结合对外暴露的远程服务接口);横切关注点结合(事务、异常处理等);南向网关实现(框架技术选型)。作者选Spring做依赖注入、采用声明式事务。异常设计遵循DDD分层原则:应用服务捕获领域异常DomainException后统一转换抛出派生自ApplicationException的子类(如ApplicationDomainException、ApplicationInfrastructureException),事务回滚标记的异常类型即ApplicationException。发散:应用服务是领域内核与技术设施的交界层——事务、依赖注入、异常翻译这些横切关注点都汇聚于此,让领域层保持对技术无感。
参考来源
- 位置:《解构领域驱动设计》第20章 20.3.5(源文件:_epub-src/OEBPS/033.xhtml)
- 结论依据:原文列出应用服务实现的考量点,并说明异常分层转换与声明式事务。
- 原始内容:异常的设计遵循领域驱动设计对异常进行分层的原则,应用服务抛出的异常为派生自ApplicationException类的异常子类。