1.DDD y datos de primavera
DDD: el diseño basado en el dominio es el método de implementación de desarrollo de software bajo requisitos complejos. Explicaré DDD específicamente cuando tenga tiempo.
Los datos de Spring están diseñados en muchos lugares de acuerdo con el principio de DDD (como el repositorio). Aquí los datos de Spring implementan principalmente el evento agregado y de dominio de DDD:
A continuación, demostramos un número estadístico de números masculinos y femeninos cuando la raíz agregada de la persona se guarda con éxito, a través del atributo de género de la persona, se actualiza la entidad estadística Genderstat.
2. Demo
2.1 Raíz agregada de persona
Como raíz agregada, la persona tiene la capacidad de publicar un evento de dominio. Hay dos formas de implementarlo bajo los datos de Spring:
como:
@Entity@data@allargsconstructor@noargsconstructor@toString (excluye = "domaineevents") persona de clase pública {@id @GeneratedValue Private Long id; nombre de cadena privada; género entero privado; // 1: masculino; 2: femenino @domaineevents colección <s object> domaineVents () {list <sect> events = new ArrayList <ject> (); events.add (New PersonsaveDevent (this.id, this.gender)); eventos de regreso; } @AfterDomaInEventPublication void CallbackMethod () {//}}o
@Entity@data@allargsconstructor@noargsconstructor@toString (exclúo = "domaineevents") la persona de clase pública extiende abstractAgGregeroOt {@ID @GeneratedValue Private Long Id; nombre de cadena privada; género entero privado; // 1: masculino; 2: persona pública femenina posterior a la persona que se ha producido. devolver esto; }}2.2 Manejo de eventos de escucha
@ComponentPublic Class GenderStatProcessor {@autewired genderRepository gendEraPository; @Async @TransactionAlventListener public void HandleAfterPersonSavedComplete (Evento de PERMENSAVEDEVENT) {GENDERSTAT GENDERSTAT = GENDERREPISITORY.FINDONE (1L); if (event.getGender () == 1) {genderStat.setMaleCount (genderStat.getMaleCount ()+1); } else {genderStat.setFemAleCount (genderStat.getFemAleCount ()+1); } genderRepository.save (genderStat); }} 3 Dirección del código fuente : https://github.com/wiselyman/spring-data-domain-event
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.