JPA学习心得七(从聚合根发布事件)

由存储库管理的实体是聚合根。在域驱动设计应用程序中,这些聚合根通常会发布域事件。Spring Data提供了一个注释,@DomainEvents您可以在聚合根的方法上使用该注释,以使该发布尽可能简单。

从聚合根公开事件域事件:

class AnAggregateRoot {

    @DomainEvents 
    Collection domainEvents() {
        // … return events you want to get published here
    }

    @AfterDomainEventsPublication 
    void callbackMethod() {
       // … potentially clean up domain events list
    }
} 
  
  • 使用的方法@DomainEvents可以返回单个事件实例或事件集合。它不能采取任何论点。
  • 发布所有事件后,使用注释的方法@AfterDomainEventsPublication。它可以用于潜在地清理要发布的事件列表。

 

每次调用Spring Data存储库的save(…)方法时,都会调用这些方法。

 

你可能感兴趣的:(Spring,Data,JPA)