1. BeanFactory와 ApplicationContext의 관계
스프링은 BeanFactory와 ApplicationContext의 두 가지 타입의 컨테이너를 제공한다.
BeanFactory 계열의 인터페이스만 구현한 클래스는 단순히 컨테이너에서 객체를 생성하
고 DI를 처리해주는 기능만을 제공한다.
하지만 스프링이 제공하는 다양한 부가 기능(편리한 트랜잭션 처리, 자바 코드 기반 스프링 설
정, 애노테이션을 사용한 빈 설정, 스프링을 이용한 웹 개발, 메시지 처리 등)을 사용하려면
ApplicationContext 계열을 사용해야 한다.
2. ApplicationContext 인터페이스와 관련된 클래스 계층 구조
가장 말단에 위치한 클래스가 실제로 사용되는 구현 클래스로서, 이들은 다음과 같다.
- GenericXmlApplicationContext : XML 파일을 설정 정보로 사용하는 스프링 컨테이너
구현 클래스이다. 독립형 어플리케이션을 개발할 때 사용된다.
- AnnotationConfigApplicationContext : 자바 코드를 설정 정보로 사용하는 스프링 컨
테이너이다. 독립형 어플리케이션을 개발할 때 사용된다.
- GenericGroovyApplicationContext : 그루비 언어로 작성된 설정 정보를 사용하는 스
프링 컨테이너이다. 독립형 어플리케이션을 개발할 때 사용된다.
- XmlWebApplicationContext : 웹 어플리케이션을 개발할 때 사용하는 스프링 컨테이너
로서 XML 파일을 설정 정보로 사용한다.
- AnnotationConfigWebApplicationContext : 웹 어플리케이션을 개발할 때 사용하는
스프링 컨테이너로서 자바 코드를 설정 정보로 사용한다
이 클래스들 중 GenericApplicationContext 클래스를 상속받는 세 개의 클래스는
스프링 컨테이너를 코드에서 직접 생성할 때 사용된다.
이름이 WebApplicationContext로 끝나는 두 개의 클래스는 스프링 MVC를 이용해서 웹 어플리케
이션을 개발할 때 사용된다.
두 WebApplicationContext 클래스를 코드에서 직접 사용할 일은 없으며,web.xml과 같은
웹 어플리케이션 설정 파일에서 간접적으로 시용하게 된다.
'BackEnd > Spring' 카테고리의 다른 글
DI의 장점 (0) | 2020.02.04 |
---|---|
의존성 주입방법 2가지 (0) | 2020.02.04 |
스프링의 가장 기본적인 기능 - 객체를 생성/조립/사용/관리에 대해 (0) | 2020.02.03 |
컴파일,빌드,배포 과정 (0) | 2020.02.03 |
스프링의 주요 모듈 (0) | 2020.02.03 |