Frage Beispiel für @DomainEvents und @AfterDomainEventsPublication


Ich habe die Annotation @DomainEvents und @AfterDomainEventsPublication im Frühjahr Data JPA Reference Documentation kennengelernt. Aber ich finde nicht das perfekte Beispiel, um diese Annotationen zu erklären


6
2018-03-11 08:40


Ursprung


Antworten:


Sie können das Beispiel in den ursprünglichen Komponententests sehen EventPublishingRepositoryProxyPostProcessor  EventPublishingRepositoryProxyPostProcessorUnitTests.java von Oliver Gierke im GitHub Repository von Frühjahr Daten Gemeingüter.

Beschreibung in der Basisausgabe von Spring Jira DATACMNS-928 Unterstützung für das Offenlegen von Domänenereignissen aus Aggregatstämmen als Spring-Anwendungsereignisse war nützlich für mich.

AKTUALISIEREN

Das ist ein einfaches und wirklich funktionierendes Beispiel von Zoltan Altfatter: Veröffentlichen von Domänenereignissen aus Aggregatstämmen


6
2018-03-13 14:40



Hier ist mein Beispielcode:

package com.peaceelite.humanService;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.springframework.data.domain.AfterDomainEventPublication;
import org.springframework.data.domain.DomainEvents;
import java.util.*;

@Entity
public class SalesmanCustomerRelationship{


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

private String firstName;
private String lastName;


/*getters & setters*/

@DomainEvents
Collection<Object> domainEvents() {
    List<Object> result = new ArrayList<Object>();
    result.add("Here should be an Event not a String, but, anyway");
    return result;
}

@AfterDomainEventPublication 
void callbackMethod() {
    System.out.println("DATA SAVED!\n"+"WELL DONE");
}

}

Dies ist eine Entitätsklasse, die von einem Quelldaten-Repository verwaltet wird. Sowohl @DomainEvents als auch @AfterDomainEventPublication werden nach der Ausführung von CrudRepository.save () ausgeführt. Eine interessante Sache ist, dass @AfterDomainEventPublication NUR funktioniert, wenn @DomainEvents existiert.

Ich lerne auch Spring Data Referenz, sowohl diese Frage und Dmitry Stolbov Antwort hat mir sehr geholfen.


5
2018-05-25 08:51