SpringApplicationRunListener 인터페이스

  • SpringApplication run 메소드의 Listener이다.
  • SpringApplicationRunListener는 SpringFactoriesLoader에 의해 로드된다.
  • 그리고 SpringApplication 인스턴스와 아규먼트를 받아내기 위해서 반드시 public 생성자를 선언해야한다.
  • 매 run 메소드마다 새로운 SpringApplicationRunListener가 생성될것이다.

EventPublishingRunListener

  • SpringApplicationRunListener 인터페이스를 구현한다
  • SpringApplicationEvent를 Publish하는 역할을 함.
  • 이벤트는 ApplicationEventMulticaster 필드가 관리된다.
  • context가 refresh 되기전에 ApplicationEventMulticaster는 이벤트를 실행한다

ApplicationEventMulticaster 인터페이스

  • Spring framework 영역이다.(boot 아님!)
  • 여러개의 ApplicationListener타입 Object를 관리하며 이벤트를 ApplicationListener에 부여하는 역할을 한다
  • 이벤트 publish를 위해선 ApplicationEventMulticaster대신 해서 ApplicationEventPublisher 또는 ApplicationContext를 사용할 수도 있음

ApplicationEvent 추상 클래스

  • 모든 Application의 event는 ApplicationEvent를 확장해야한다

ApplicationContextEvent 추상 클래스

  • ApplicationContext가 사용할 이벤트를 의미한다.