Server/Spring
Spring Application Context 에 대한 정리
진스팍
2018. 11. 1. 11:55
Spring 의 Application Context 는 Spring 에서 설정 정보의 제공을 위한 핵심 인터페이스이다.
런타임 이전에 로드가 되며, 런타임에서 일반적으로 Read-Only 로 구성되지만, 사용에 따라 런타임에 Re-load 하는 경우가 종종 있다.
프로젝트의 설정 작업을 하는 클래스 들의 경우 ApplicationContextAware 등의 인터페이스를 상속해서 ApplicationContext 에 접근하곤 한다.
ApplicationContext 를 이용하면 다음과 같은 작업이 가능하다.
- Application 에서 Component 로 갖고 있는 Bean 에 대해 접근이 가능하다. (즉, Bean factory 를 제공한다)
- Resource 를 직접 가져올 수 있다. 리플렉션과 유사하게 명시된 이름을 주로 사용한다.
- 이벤트를 직접 발행할 수 있으며 이벤트는 context 에 등록된 Listener 에 작용한다.
- 상속된 Context 컴포넌트들에 접근이 가능하다.
ApplicationContext 에 접근하는 클래스는 다음과 같이 만들 수 있다.
@Component
public class ContextAccessor implements ApplicationContextAware {
private ApplicationContext applicationContext;
/*
*
* @see org.springframework.context.ApplicationContextAware#setApplicationContext
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
}
위와 같이 ApplicationContextAware 를 구현하면, ApplicationContext 에 접근이 가능하며, 클래스를 컴포넌트화 시켜서 프로젝트에 광범위하게 사용하곤 한다.