1.DDD- und Federdaten
DDD: Domänengesteuerte Design ist die Implementierungsmethode der Softwareentwicklung unter komplexen Anforderungen. Ich werde DDD speziell erklären, wenn ich Zeit habe.
Federdaten sind an vielen Stellen nach dem DDD -Prinzip (wie dem Repository) ausgelegt. Hier implementiert Springdaten hauptsächlich das Aggregat- und Domain -Ereignis von DDD:
Im Folgenden zeigen wir eine statistische Anzahl männlicher und weiblicher Zahlen, wenn die Gesamtwurzel der Person erfolgreich gespeichert wird. Durch das geschlechtsspezifische Attribut einer Person wird das statistische Entität Genderstat aktualisiert.
2. Demo
2.1 Wurzel der Person aggregieren
Als aggregierte Wurzel hat die Person die Möglichkeit, das Domänenereignis zu veröffentlichen. Es gibt zwei Möglichkeiten, es unter Frühlingsdaten zu implementieren:
wie:
@Entity@data@allargSconstructor@noargSconstructor@toString (exclude = "domaineEvents") öffentliche Klasse Person {@ID @generatedValue Private Long ID; privater Zeichenfolge Name; private Ganzzahl Geschlecht; // 1: männlich; 2: weiblich @DomaineEvent collection <Object> domaineEvents () {list <FORGANGS <FORGATION> ESSELS = new ArrayList <Object> (); Ereignisse.Add (neue personenspezifische Event (this.id, this.Indender)); Rückkehrereignisse; } @AfterDomaineVentPublication void callbackMethod () {//}}oder
@Entity@data@allargSconstructor@noargSconstructor@toString (exclude = "domaineEvents") Public Class Person erweitert AbstractAggRegateroot {@ID @generatedValue Private Long ID; privater Zeichenfolge Name; Private Ganzzahl Geschlecht; // 1: männlich; 2: weibliche öffentliche Person Afterssonsaved completed () {RegisterEvent (neuer Personen (this.Id, this.Ger.)); gib dies zurück; }}2.2 Hörereignishandling
@ComponentPublic Class GenderstatProcessor {@autowired Genderrepository Genderrepository; @Async @transactionAlEventListener public void Handle danachPerssonsavedComplete (personalSaventEvent Ereignis) {Genderstat genderstat = genderrepository.findone (1L); if (event.getGender () == 1) {genderstat.setMalecount (genderstat.getmalecount ()+1); } else {genderstat.setfemalecount (genderstat.getFemalecount ()+1); } Genderrepository.save (genderstat); }} 3 Quellcodeadresse : https://github.com/wiseynman/spring-data-domain-event
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.