Spring IoC Container 9부

Spring IoC 컨테이너와 빈 - 9부

백기선님의 강의인 Spring 프레임워크 핵심 기술 편의 IoC Container를 학습한 내용을 정리한 글

MessageSource

ApplicationContext의 또 다른 기능인 EventPublisher에 대해 알아보자

기본적으로 ApplicationEventPublisher는 디자인 패턴 중 Observer 패턴을 사용하여 구현되어져있다.

Spring 4.2 이전에는 ApplicationEvent를 상속받아야만 Event 처리를 할 수 있었다.

그러나 4.2 이후에는 ApplicationEvent의 상속 없이 구현이 가능하며 이는 스프링의 철학인 비침투성에 더욱 부합하는 형태가 되었다.

이벤트를 처리하는 핸들러 클래스 또한 4.2버전 이후부터는 특정 인터페이스를 구현하지 않아도 되며 그 대신 빈으로는 등록을 해주어야 한다.

이벤트를 핸들링하는 클래스의 핸들링 메소드에는 @EventListener 어노테이션이 부착되어 있어야 한다.

일반적으로 같은 기능을 수행하는 핸들러가 두개인 경우에는 @Order 어노테이션을 사용하면 순서를 정해줄 수 있다.

가령 핸들러를 먼저 수행시키고 싶은 핸들러에는

@Order((Ordered.HIGHEST_PRECEDENCE))를 넣어주면 된다.

비동기적으로 수행하고 싶다면 핸들링 메소드에 @Async 어노테이션을 적용한 뒤 메인 클래스에 @EnalbeAsync를 추가하면 된다.

Reference

인프런 백기선님의 스프링 프레임워크 핵심 기술 강좌



© 2022. by minkuk

Powered by minkuk