@EventListener

@EventListener는 Spring에서 이벤트 기반 프로그래밍을 구현할 수 있도록 제공되는 어노테이션으로 특정 이벤트가 발생하면 자동으로 메서드를 호출한다. 단, Spring Bean으로 등록된 클래스의 메서드에만 사용 가능하다.


Spring 이벤트 구조

Spring 이벤트는 ApplicationEvent 또는 그 하위 클래스 기반으로 동작한다.


이벤트 발행

@Component
public class EventPublisher {

    private final ApplicationEventPublisher publisher;

    public EventPublisher(ApplicationEventPublisher publisher) {
        this.publisher = publisher;
    }

    public void publishMessage(String message) {
        // Spring 내장 이벤트 발행
        publisher.publishEvent(new MessageEvent(this, message));
    }
}

Spring에서 이벤트를 발생시키는 대표적인 방법은 ApplicationEventPublisher 를 사용하는 것이다.


커스텀 이벤트

커스텀 이벤트 정의