html网站用什么空间,深圳人才网官方网站,免费行情软件app一个,重庆装修公司口碑最好的是哪家【Spring连载】使用Spring Data的Repositories----从聚合根Aggregate Roots发布事件 由存储库管理的实体是聚合根。在域驱动设计应用程序中#xff0c;这些聚合根通常发布域事件。Spring Data提供了一个名为DomainEvents的注解#xff0c;你可以在聚合根的方法上使用该注解这些聚合根通常发布域事件。Spring Data提供了一个名为DomainEvents的注解你可以在聚合根的方法上使用该注解以使发布尽可能简单如以下示例所示 从聚合根公开域事件 class AnAggregateRoot {DomainEvents --------1CollectionObject domainEvents() {// … return events you want to get published here}AfterDomainEventPublication --------2void callbackMethod() {// … potentially clean up domain events list}
}1. 使用DomainEvents的方法可以返回单个事件实例或事件集合。决不能有任何参数。
2. 在所有事件发布后我们有一个用AfterDomainEventPublication注解的方法。你可以使用它来潜在地清除要发布的事件列表以及其他用途。每次调用以下Spring Data存储库方法之一时都会调用前述方法
save(…), saveAll(…)delete(…), deleteAll(…), deleteAllInBatch(…), deleteInBatch(…)
请注意这些方法将聚合根实例作为参数。这就是为什么deleteById(…)明显不存在的原因因为实现可能会选择发出删除实例的查询导致我们一开始就永远无法访问聚合实例。