Search
🌱

(Transactional)EventListener

EventListener

publishEvent() 에서 동작한다.

TransactionalEventListener

publishEvent() 에서 동작하는데, 이 때 단순히TransactionalApplicationListenerSynchronization 에 등록한다.
TransactionInterceptor 에서 commit 후에 afterCompletion 에서 동작한다( TAS$invokeWithinTransaction 의commitTransactionAfterReturning
둘의 차이:
EventListener 는 ApplicationListenerMethodAdapter
TransactionalEventListener 는 TransactionalApplicationListenerMethodAdapter
이다.

TransactionalEventListener

publishEvent 에서 등록된다.

EventListener

application 구동시 abstractApplicationContext 에서 등록된다.
listeners 를 가져올 때 모든 listener 를 순회돌면서 event type 과 맞는 listener 들만 가져온다.