- 스프링 프레임워크는 다양한 타입의 이벤트 메시지를 게시하고 구독할 수 있는 메커니즘을 제공
- 이를 스프링 이벤트라고 함
- RabbitMQ, ActiveMQ 같은 외부 시스템 메시지 브로커는 아님
- 외부 메시지 브로커의 특징
- 프로세스와 프로세스 또는 인스턴스와 인스턴스 사이 메지시를 게시하고 구독
- 메시지를 게시, 구독하는 과정에서 데이터 누락 없는 신뢰성 보장
- 스프링 에빈트는 스프링 애플리케이션 내부에서 이벤트를 게시하고 구독하는 목적으로 사용
- 이 장에서는 두 가지 방법을 사용하여 멀티 스레드로 이벤트를 처리하는 방법을 설명함
- 첫 번째는 이벤트 메시지를 전달하는
ApplicationEventMulticaster
를 설정하는 방법 - 두 번째는 스프링 프레임워크에서 제공하는
@Async
애너테이션을 사용하는 방법
스프링 이벤트 장점
- 이벤트를 게시하는 클래스와 구독하는 클래스의 의존관계를 분리할 수 있음
- 이벤트를 게시, 구독하는 두 클래스를 비동기로 처리할 수 있음
- 게시된 하나의 이벤트 메시지를 여러개의 구독 클래스가 수신가능
- 스프링 이벤트를 이용해 트랜잭션을 효율적으로 사용할 수 있음
사용자 정의 이벤트 처리
비동기 사용자 정의 이벤트 처리
@Async 애너테이션을 사용한 비동기 이벤트 처리
@EventListener
스프링 애플리케이션 이벤트
트랜잭션 시점에 구독한 이벤트 처리