[220402] git 충돌 정리
This commit is contained in:
@@ -83,14 +83,6 @@ CRUD 중에서 R 만을 담당하는 모듈이다. payment-command에서 발행
|
||||
- Repository가 Controller에 직접 주입될 수 있다. 왜냐하면 DB 쿼리 외의 별다른 로직이 필요없기 때문이다.
|
||||
- 마찬가지 이유로 Response DTO도 사용하지 않는다. 이미 DB에 저장된 모든 정보가 Response에 최적화 시켜져 있기 때문이다.
|
||||
|
||||
#### Query Model의 모듈 특징
|
||||
|
||||
- Query 모델에서는 Consuming과 동시에 Query 모델에서 필요한 데이터로 가공한다고 가정한다.
|
||||
- 그러므로 몇 가지 요소가 생략될 수 있다.
|
||||
- Repository가 Controller에 직접 주입될 수 있다. 왜냐하면 DB 쿼리 외의 별다른 로직이 필요없기 때문이다.
|
||||
- 마찬가지 이유로 Response DTO도 사용하지 않는다. 이미 DB에 저장된 모든 정보가 Response에 최적화 시켜져 있기 때문이다.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.example.cash.domain;
|
||||
|
||||
import com.example.user.domain.User;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.data.annotation.CreatedDate;
|
||||
import org.springframework.data.annotation.LastModifiedDate;
|
||||
|
||||
@Entity
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class Cash {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
private BigDecimal amount;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn
|
||||
private User user;
|
||||
|
||||
@CreatedDate
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@LastModifiedDate
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public static Cash of(BigDecimal amount, User user) {
|
||||
return new Cash(UUID.fromString("cash").toString(), amount, user, null, null);
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.example;
|
||||
|
||||
import com.example.payment.domain.event.PaymentCreated;
|
||||
import org.springframework.kafka.annotation.KafkaListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PaymentCreatedListener {
|
||||
|
||||
@KafkaListener(topics = "PaymentCreated", groupId = "group1")
|
||||
public void consume(PaymentCreated message) {
|
||||
System.out.println("receive message : " + message.toString());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.example.payment.infra.kafka;
|
||||
|
||||
import com.example.payment.domain.Payment;
|
||||
import com.example.payment.domain.PaymentRepository;
|
||||
import com.example.payment.domain.event.PaymentCreated;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.kafka.annotation.KafkaListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class PaymentCreatedListener {
|
||||
|
||||
private final PaymentRepository paymentRepository;
|
||||
|
||||
@KafkaListener(topics = "PaymentCreated", groupId = "group1")
|
||||
public void consume(PaymentCreated message) {
|
||||
log.info("event received: {}", message);
|
||||
Payment payment = message.toPayment();
|
||||
paymentRepository.save(payment);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user