1. DDD и Spring Data
DDD: дизайн, управляемый доменом, является методом реализации разработки программного обеспечения в соответствии с сложными требованиями. Я объясню DDD специально, когда у меня будет время.
Данные пружины разработаны во многих местах в соответствии с принципом DDD (например, репозитория). Здесь данные Spring в основном реализуют совокупное и доменное событие DDD:
Ниже мы демонстрируем статистическое количество чисел мужчин и женщин, когда совокупный корень человека успешно сохраняется, благодаря гендерному атрибуту человека, статистическая сущность Genderstat обновляется.
2. Демонстрация
2.1 человек агрегирует корень
Как совокупный корень, человек имеет возможность публиковать доменное событие. Есть два способа реализации его в рамках Spring Data:
нравиться:
@Entity@data@allargsconstructor@noargsconstructor@toString (exkude = "domainevents") public class person {@id @generatedvalue private long id; Приватное название строки; частное целочисленное пол; // 1: мужчина; 2: женская @domainevents collection <object> domainevents () {list <Object> Events = new ArrayList <Object> (); Events.Add (New PersonSavedevent (this.id, this.gender)); вернуть события; } @Afterdomaineventpublication void callbackmethod () {//}}или
@Entity@data@allargsconstructor@noargsconstructor@tostring (exkude = "domainevents") public class permons AbstractAggregetRoot {@id @GeneratedValue Private Long ID; Приватное название строки; частное целочисленное пол; // 1: мужчина; 2: Женщина -публичное лицо AfterpersonsAvedCompleted () {RegisterEvent (New PersonSavedEvent (this.id, this.gender)); вернуть это; }}2.2 Обработка прослушивания событий
@Componentpublic class genderstatprocessor {@autowired genderpository genderrepository; @Async @TransActionAleVellistener public void handleafterpersonsAvedcomplete (ersonsavedevent event) {genderstat genderstat = genderrepository.findone (1L); if (event.getgender () == 1) {genderstat.setmalecount (genderstat.getmalecount ()+1); } else {genderstat.setfemaleCount (genderstat.getFemaleCount ()+1); } genderRepository.save (genderstat); }} 3 Адрес исходного кода : https://github.com/wiselyman/spring-data-domain-event
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.