Add BAEL-2067 DomainEvents examples

This commit is contained in:
Mike Wojtyna
2018-09-08 02:05:31 +02:00
parent f47113f662
commit 7ba5b99925
18 changed files with 451 additions and 4 deletions

View File

@@ -0,0 +1,31 @@
/**
*
*/
package com.baeldung.ddd.event;
import javax.transaction.Transactional;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@Service
public class DomainService {
private final ApplicationEventPublisher eventPublisher;
private final AggregateRepository repository;
public DomainService(AggregateRepository repository, ApplicationEventPublisher eventPublisher) {
this.repository = repository;
this.eventPublisher = eventPublisher;
}
@Transactional
public void serviceDomainOperation(long entityId) {
repository.findById(entityId)
.ifPresent(entity -> {
entity.domainOperation();
repository.save(entity);
eventPublisher.publishEvent(new DomainEvent());
});
}
}