ApplicationContext
- org.springframework.context.ApplicationContext 인터페이스는 스프링 IoC 컨테이너를 나타내며, 빈(스프링 빈)을 인스턴스화하고, 설정하고, 조합하는 데 책임이 있음.
- 컨테이너는 어떤 객체를 인스턴스로 만들고 설정하고 조합해야 하는지를 설정 메타데이터에서 알아냄.
- 설정 메타데이터는 XML이나 자바 애노테이션, 자바 코드로 나타냄.
- 설정 메타데이터는 애플리케이션을 구성하는 객체들을 나타내고 그러한 객체들 사이의 풍부한 상호 의존성을 나타냄.
- 스프링 빈으로 등록할 클래스 작성(예. POJOs)
- 설정 메타데이터(Configuration Metadata) 작성
- 스프링 컨테이너(예. ApplicationContext)가 설정 메타데이터 내용을 기반으로 스프링 빈을 인스턴스화하고, 설정을 완료함
- 실행가능한 시스템이나 애플리케이션이 준비됨
대표적인 ApplicationContext 구현체
클래스 | 모듈 | 버전 | 설명 |
---|---|---|---|
AnnotationConfigApplicationContext | spring-context | 3.0 | 하나 이상의 자바 기반 설정 클래스에서 스프링 애플리케이션 컨텍스트를 로드함. |
AnnotationConfigWebApplicationContext | spring-web | 3.0 | 하나 이상의 자바 기반 설정 클래스에서 스프링 웹 애플리케이션 컨텍스트를 로드함. |
ClassPathXmlApplicationContext | spring-context | 1.0 | 클래스패스(classpath)에 위치한 XML 파일에서 컨텍스트 정의 내용을 로드함. |
FileSystemXmlApplicationContext | spring-context | 1.0 | 파일 시스템에서, 즉 파일 경로로 지정된 XML 파일에서 컨텍스트 정의 내용을 로드함. |
XmlWebApplicationContext | spring-web [1] | 1.0 | 웹 애플리케이션에 포함된 XML 파일에서 컨텍스트 정의 내용을 로드함. |
[1] ^ 스프링 프레임워크 1.0부터 존재했으며, 스프링 프레임워크 3.0에서 spring-web 모듈로 분리되었음. 여기를 참조할 것.