Données 1.DDD et Spring
DDD: La conception axée sur le domaine est la méthode de mise en œuvre du développement de logiciels sous des exigences complexes. J'expliquerai DDD spécifiquement quand j'aurai le temps.
Les données de printemps sont conçues dans de nombreux endroits selon le principe DDD (comme le référentiel). Ici, les données de printemps implémentent principalement l'événement global et de domaine de DDD:
Ci-dessous, nous démontrons un nombre statistique de nombres masculins et féminins lorsque la racine globale de la personne est enregistrée avec succès, via l'attribut de genre de la personne, l'entité statistique Genderstat est mise à jour.
2. Demo
2.1 Personne Root agrégé
En tant que racine globale, la personne a la capacité de publier un événement de domaine. Il existe deux façons de les implémenter sous les données de printemps:
comme:
@ Entité @ data @ allargsconstructor @ noargsconstructor @ toString (exclude = "domaineVents") Public class Person {@id @generatedvalue private long id; nom de chaîne privé; Gender entier privé; // 1: mâle; 2: Femme @DomaineVents Collection <Bject> domaineVents () {list <object> Events = new ArrayList <Bject> (); events.add (new PersonsAvedevent (this.id, this.gender)); Retour événements; } @AfterDomaineVentPublication void callbackMethod () {//}}ou
@ Entité @ data @ allargsconstructor @ noargsconstructor @ toString (exclude = "domaineVents") La classe publique étend AbstractagGateroot {@id @GeneratedValue Private Long ID; nom de chaîne privé; Sexe entier privé; // 1: Homme; 2: Personne publique féminine AfterpersonsAvedCompleted () {registerEvent (New PersonsAvedevent (this.id, this.gender)); retourner ceci; }}2.2 Gestion des événements d'écoute
@Componentpublic class GenderstAtProcessor {@autowired GenderRepository GenderRepository; @Async @transactionaleventListener public void handleafterPersonsAvedComplete (Event PersonsAveDevent) {Genderstat Genderstat = GenderRepository.FindOne (1L); if (event.getGender () == 1) {genderstat.setMaleCount (genderstat.getMaleCount () + 1); } else {genderstat.setfemaleCount (genderstat.getFemaleCount () + 1); } GenderRepository.save (Genderstat); }} 3 Adresse du code source : https://github.com/wiselyman/spring-data-domain-event
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.