반응형
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 공부
- nestjs스터디
- 코테준비
- Axon framework
- 자료구조공부
- 스프링공부
- 코테공부
- JPA예제
- 프로그래머스
- JPA공부
- K8S
- DDD
- 스프링부트
- 자바공부
- 플러터 공부
- JPA스터디
- 스프링 공부
- 스프링
- 플러터 개발
- nestjs공부
- querydsl
- 기술공부
- JPA
- 스프링부트공부
- nestjs
- 기술면접공부
- 카프카
- 알고리즘공부
- Flutter
- Kafka
Archives
- Today
- Total
DevBoi
[DDD] EventListener, TransactionalEventListener? 본문
반응형
비슷하면서도,,, 느낌이 오면서도.,,,, 무튼 다른,, 그런 두가지 어노테이션을 공부해보려고한다.
@TransactionalEventListener는 해당 쓰레드가 언제 트랜잭션을 처리할지, Phase를 통해서 정의할 수 있다.
@EventListener는 호출시점에 바로 실행된다.
트랜잭셔널이벤트리스너는, 아래와 같이 4가지 Phase를 나눠서 등록이 가능하다.
@Component
class MemberEventHandler {
@EventListener
fun defaultEventListener(event : MemberSave){
logger.info("defaultEventListener ---> {}", event)
}
@TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT)
fun transactionalEventListenerBeforeCommit(event : MemberSave){
logger.info("TransactionPhase.BEFORE_COMMIT ---> {}", event)
}
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)
fun transactionalEventListenerAfterCommit(event : MemberSave){
logger.info("TransactionPhase.AFTER_COMMIT ---> {}", event)
}
@TransactionalEventListener(phase = TransactionPhase.AFTER_ROLLBACK)
fun transactionalEventListenerAfterRollback(event : MemberSave){
logger.info("TransactionPhase.AFTER_ROLLBACK ---> {}", event)
}
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMPLETION)
fun transactionalEventListenerAfterCompletion(event : MemberSave){
logger.info("TransactionPhase.AFTER_COMPLETION ---> {}", event)
}
}
이벤트 리스너는 바로 실행이 되지만
TransactionalEventListener는 상위 트랜잭션이 커밋,완료,롤백,비포커밋에 나눠서 설정이 가능하고
해당 설정을 하는것에 따라 실행시점이 달라진다.
해당 분기 처리된 메소드로 오버로딩으로 구현할 수도있고, 필요한 것만 정의해서 사용할 수도 있다.
뭔가 이번껀 굳이 하고싶지는 않다..할게많아서 귀찮다.
무튼 트랜잭셔널과 같이 이벤트리스너에 대한 트랜잭션 옵션도 가능하다고 알고있자.
반응형
'Develop > [DDD]' 카테고리의 다른 글
[DDD] EventListener들은 어디에 저장되고 어떻게 호출될까? (0) | 2023.06.19 |
---|---|
[DDD] Notification and Event (0) | 2023.06.19 |
[DDD] Axon-framework Query 사용 (0) | 2023.06.14 |
[DDD] axon framework를 사용해보자 (5) (1) | 2023.06.13 |
[DDD] Axon framework 를 사용해보자 (4) (0) | 2023.06.13 |