1.DDD 및 스프링 데이터
DDD : 도메인 구동 설계는 복잡한 요구 사항에 따라 소프트웨어 개발 구현 방법입니다. 시간이있을 때 DDD를 구체적으로 설명하겠습니다.
스프링 데이터는 DDD 원칙 (예 : 저장소)에 따라 여러 곳에서 설계되었습니다. 여기서 스프링 데이터는 주로 DDD의 집계 및 도메인 이벤트를 구현합니다.
아래에서 우리는 사람의 집계 루트가 성공적으로 저장 될 때 통계적 실체의 성별 속성을 통해 통계 엔터티 genderstat가 업데이트 될 때 통계적 수를 보여줍니다.
2. 데모
2.1 사람의 집계 뿌리
집계 루트로서 사람은 도메인 이벤트를 게시 할 수 있습니다. 스프링 데이터에서이를 구현하는 두 가지 방법이 있습니다.
좋다:
@entity@data@alargsconstructor@noargsconstructor@tostring (exclude = "domainevents") 공개 클래스 사람 {@id @generatedValue private long id; 개인 문자열 이름; 개인 정수 성별; // 1 : 남성; 2 : Female @Domainevents Collection <botormainevents () {list <botort> events = new ArrayList <Object> (); events.add (새로운 사람 (this.id, this.gender)); 반환 이벤트; } @afterdomaineventPublication void CallbackMethod () {//}}또는
@Entity@data@alargsconstructor@noargsconstructor@tostring (exclude = "domainevents") 공개 클래스 사람 확장 actractAggregateroot {@id @generatedValue private long id; 개인 문자열 이름; 개인 정수 성별; // 1 : 남성; 2 : 여성 공공 사람 이후의 공개인 이후에 () {registerevent (new personsavedevent (this.id, this.gender)); 이것을 반환하십시오; }}2.2 청취 이벤트 처리
@ComponentPublic Class GenderstatProcessor {@autowired genderrepository genderrepository; @async @transactionaleventlistener public void handlefterpersonsavedcomplete (personsavedevent 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을 더 지원하기를 바랍니다.