더북(TheBook)

4.8 그 외의 스프링 ApplicationContext 구성 살펴보기

지금까지 스프링의 ApplicationContext를 살펴봤지만 살펴본 기능의 대부분은 주로 ApplicationContext가 구현하고 있는 BeanFactory 인터페이스가 제공하는 것이었습니다. 스프링에서는 BeanFactory 인터페이스의 다양한 구현체가 스프링이 관리하는 빈의 초기화, 의존성 주입, 라이프사이클 지원을 제공합니다. 하지만 앞서 설명했듯 ApplicationContextBeanFactory 인터페이스를 상속해 다른 유용한 기능들도 제공합니다. ApplicationContext의 주된 기능은 애플리케이션을 개발할 때 좀 더 풍부한 기반을 제공하는 것입니다. ApplicationContext는 사용자가 구성한 빈 관련 정보를 BeanFactory 보다 훨씬 더 많이 가지고 있으며, BeanFactoryPostProcessor 같은 많은 스프링 인프라스트럭처 클래스와 인터페이스의 경우 스프링을 사용할 때 작성해야 하는 코드 양을 줄여줍니다.

ApplicationContext를 사용할 때 가장 큰 장점은 스프링과 스프링이 관리하는 리소스를 100% 선언적인 방식으로(declarative way) 구성하고 관리할 수 있다는 것입니다. 이는 스프링이 가능한 한 자동으로 애플리케이션에서 ApplicationContext를 부를 수 있는 지원 클래스를 제공하므로 애플리케이션에서 ApplicationContext에 접근하려고 별도 코드를 작성할 필요가 없음을 뜻합니다. 아쉽게도 현재 이 기능은 사실 스프링 기반 웹 애플리케이션을 만들 때만 사용 가능합니다. 웹 애플리케이션에서는 웹 애플리케이션 배포 서술자(Deployment Descriptor, DD. 보통 web.xml)로 스프링 ApplicationContext를 초기화할 수 있습니다. 물론 독립형 애플리케이션을 사용할 때도 간단한 코딩으로 스프링의 ApplicationContext를 초기화할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.