DDD Aggregates и @DomainEvents

Данные]

1. Обзор

В этом учебном пособии мы объясним, как использовать аннотацию @ DomainEvents и класс AbstractAggregateRoot для удобной публикации и обработки событий домена, создаваемых агрегатом, - одного из ключевых шаблонов тактического проектирования в проектировании, управляемом доменом.

  • Агрегаты принимают бизнес-команды, что обычно приводит к созданию события, связанного с бизнес-доменом - Событие домена ** .

Если вы хотите больше узнать о DDD и агрегатах, лучше всего начать с original книги Эрика Эванса . Также есть отличный http://dddcommunity.org/uploads/a%3E%20written%20by%20Vaughn%20Vernon.%20Definittle%20worth%20reading.%3C/p%3E%0A%3Cp%3EIt%20can%20be% 20cumbersome% 20to% 20manually% 20work% 20with% 20domain% 20events.% 20Thankfully,% 20% 3Cstrong% 3ESpring% 20Framework% 20allows% 20us% 20to% 20easily% 20publish% 20and% 20handle% 20domain% 20events% 20when% 20working% 20with% 20aggregate% 20roots% 3C/сильного% 3E% 20using% 20data% 20repositories.% 3C/р% 3E% 0A% 3CH2% 20id =[** 2.

Зависимости Maven ** ]

Spring Data представил @ DomainEvents в выпуске Ingalls. Он доступен для любого хранилища.

Примеры кода, представленные для этой статьи, используют Spring Data JPA. Самый простой способ интеграции событий домена Spring с нашим проектом - использовать https://search.maven.org/search?q=g:org.springframework.boot%20AND%20a:spring-boot-starter-data- jpa[Spring Boot Data JPA Starter]:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>