2024年3月31日
title: DDD-一、战略领域驱动设计 author: 知识铺 date: 2022-04-23 14:36:17+08:00 tags: [DDD] 领域驱动设计(DDD) 自_Eric Evans_于 2003 年出版他的有关该主题的书以来就一直存在。几年前,当我加入一个遭受数据一致性问题困扰的项目时,我自己就接触了 DDD。重复出现在数据库中,一些信息根本没有保存,你可能随时随地遇到乐观锁定……
阅读全文
2024年3月31日
title: DDD-七、在 Hibernate 中使用值对象作为聚合标识符 author: 知识铺 date: 2022-04-23 15:13:05+08:00 tags: [DDD] 如果您使用的是除 Hibernate 之外的其他 JPA 实现,则必须查看该实现的文档以了解如何创建自定义类型。 属性转换器不会做 第一个想法可能是使用简单的值对象和属性转换器。不幸的是,这是不可能的,因为 JPA 不支持对@Id字段使用属性转换器。您可以做……
阅读全文
2024年3月31日
title: DDD-三、领域驱动设计和六边形架构 author: 知识铺 date: 2022-04-23 15:08:05+08:00 tags: [DDD] 在前两篇文章中,我们了解了战略和战术领域驱动设计。现在是学习如何将领域模型转化为工作软件的时候了——更具体地说,是如何使用六边形架构来实现。 尽管代码示例是用 Java 编写的,但前两篇文章非常通用。虽然本文中的很多理论也可以应用到其他……
阅读全文
2024年3月31日
title: DDD-九、使用 Spring Data 发布领域事件 author: 知识铺 date: 2022-04-23 15:14:15+08:00 tags: [DDD] 从 Spring 的角度来看,域事件只是另一个应用程序事件,可以使用内置的ApplicationEventPublisher. 换句话说,我们不需要担心构建事件总线或其他一些基础设施来发布域事件:您将事件发布者注入到您的域服务中并发布事件。但是……
阅读全文
2024年3月31日
title: DDD-二、战术领域驱动设计 author: 知识铺 date: 2022-04-23 14:53:28+08:00 tags: [DDD] 与战略领域驱动设计相比,战术设计更加亲力亲为,更接近实际代码。战略设计处理抽象的整体,而战术设计处理类和模块。战术设计的目的是将域模型细化到可以转换为工作代码的阶段。 设计是一个迭代过程,因此将战略设计和战术设计结合起来是有意义的。你……
阅读全文
2024年3月31日
title: DDD-五、使用 Spring Data 构建聚合 author: 知识铺 date: 2022-04-23 15:11:05+08:00 tags: [DDD] JPA 有自己的@Entity概念,但远没有 DDD 中的实体概念那么严格。这既是优点也是缺点。优点是使用 JPA 实现实体和聚合非常容易。缺点是同样容易做 DDD 不允许的事情。如果您与以前广泛使用过 JPA 但不熟悉 DDD 的开发人员一起工作,这可能会特别成问题。 而值对象……
阅读全文
2024年3月31日
title: DDD-八、使用 Spring 处理领域事件 author: 知识铺 date: 2022-04-23 15:14:05+08:00 tags: [DDD] Spring Data 使用标准发布域事件ApplicationEventPublisher。这意味着我们也可以使用标准的 Spring 方式处理事件,@EventListener所以让我们先来看看。 处理事件@EventListener 使用的域事件处理程序(我有时……
阅读全文
2024年3月31日
title: DDD-六、使用 Spring Data 构建存储库 author: 知识铺 date: 2022-04-23 15:12:05+08:00 tags: [DDD] 使用 Spring Data 构建存储库非常容易。您需要做的就是声明您的存储库接口并让它扩展 Spring Data 接口JpaRepository。但是,这也很容易意外地为本地实体创建存储库(如果您的开发人员不熟悉 DDD 但熟悉 JPA,则可能会发生这种情况)。因此,我总是像这样……
阅读全文
2024年3月31日
title: DDD-十、通过预定作业的最终一致性 author: 知识铺 date: 2022-04-23 15:16:05+08:00 tags: [DDD] 如何从单个域事件处理程序失败或整个系统在事务提交后但在所有域事件处理程序处理事件之前崩溃的情况中恢复。 与软件中的大多数(如果不是全部?)问题一样,这里没有万能的解决方案。相反,您必须找到最能满足您的特定系统要求的解决方案。在……
阅读全文
2024年3月31日
title: DDD-四、在 JPA 中使用值对象 author: 知识铺 date: 2022-04-23 15:09:05+08:00 tags: [DDD] 在战术设计中,我们了解了值对象是什么以及它有什么用处。我们从未真正研究过如何在实际项目中使用它。现在是时候卷起袖子,仔细看看一些实际的代码了! 值对象是领域驱动设计中最简单和最有用的构建块之一,因此让我们从了解在 JPA 中使用值对象的不同方……
阅读全文