반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 플러터 개발
- JPA
- Kafka
- 프로그래머스
- 기술공부
- 자료구조공부
- JPA 공부
- 기술면접공부
- querydsl
- 스프링공부
- 자바공부
- 플러터 공부
- nestjs
- 코테준비
- Flutter
- 알고리즘공부
- 스프링 공부
- K8S
- 카프카
- 코테공부
- JPA예제
- nestjs스터디
- Axon framework
- DDD
- 스프링부트
- nestjs공부
- JPA공부
- 스프링
- JPA스터디
- 스프링부트공부
Archives
- Today
- Total
DevBoi
[DDD] Axon-framework Query 사용 본문
반응형
Axon framework 에서 command를 사용할때는 CommandBus, Event는 EventBus를 통해서 전달되었다
Query도 QueryBus를 통해서 해당 구현에 대한 Handler로 전달이 된다.
1. pointing query
해당 관련되서, 가장 간단한 구조이다.
각 핸들러를 미리 App에서 등록하고, 해당 요청이 오면 알맞은 Handler를 통해서 결과를 반환하는 것이다.
2. Routing 구조
멀티 모듈을 사용할때는 위와 같은 구조로 이루어 진다.
해당 관련되서, Axon Server에서 라우팅 테이블에 관련된 queryHandler를 등록해서, 사용자가 요청이 오면,
알맞은 앱으로 전달 및 결과를 요청 앱에 등록한다.
우선 해당 간단한 쿼리 클래스를 만들자
public class OrderQuery { }
쿼리 핸들러가 선언된 구현체를 정의한다.
@Component
public class QueryHandlers {
@Autowired
OrderRepository orderRepository;
@QueryHandler
public List<Orders> handle(OrderQuery query){
return orderRepository.findAll();
}
}
사용하는 곳은 생각보다 심플하다.
@Autowired
private QueryGateway queryGateway;
@GetMapping("/orders")
public CompletableFuture<List<Orders>> getAllOrders(){
return queryGateway.query(new OrderQuery(), ResponseTypes.multipleInstancesOf(Orders.class));
}
단순히 해당 queryGateway를 주입받아서, 해당 핸들링 하는 쿼리 부분으로 넘기면, 관련되서 값을 받을 수 있다.
orderId관련되서는 간단하게 UUID를 통해서 값을 생성해서, 받았다.
구조적으로 제네릭 인터페이스로 묶던 뭘 하던 무튼 이건 나중의 구조적으로 개발할때 생각하면되고
어차피 설계도 어디까지가 공통화가 좋고, 아닌지에 대한건 사람마다 다르기때문에
반응형
'Develop > [DDD]' 카테고리의 다른 글
[DDD] EventListener들은 어디에 저장되고 어떻게 호출될까? (0) | 2023.06.19 |
---|---|
[DDD] Notification and Event (0) | 2023.06.19 |
[DDD] axon framework를 사용해보자 (5) (1) | 2023.06.13 |
[DDD] Axon framework 를 사용해보자 (4) (0) | 2023.06.13 |
[DDD] Axon framework 를 사용해보자 (3) (0) | 2023.06.12 |