32 lines
856 B
Java
32 lines
856 B
Java
/**
|
|
*
|
|
*/
|
|
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());
|
|
});
|
|
}
|
|
|
|
}
|