본문 바로가기

BackEnd/Spring

스프링 컨테이너 종류

반응형

1. BeanFactory와 ApplicationContext의 관계 


스프링은 BeanFactory와 ApplicationContext의 두 가지 타입의 컨테이너를 제공한다.




BeanFactory 계열의 인터페이스만 구현한 클래스는 단순히 컨테이너에서 객체를 생성하


고 DI를 처리해주는 기능만을 제공한다. 


하지만 스프링이 제공하는 다양한 부가 기능(편리한 트랜잭션 처리, 자바 코드 기반 스프링 설


정, 애노테이션을 사용한 빈 설정, 스프링을 이용한 웹 개발, 메시지 처리 등)을 사용하려면 


ApplicationContext 계열을 사용해야 한다.  


2. ApplicationContext 인터페이스와 관련된 클래스 계층 구조





가장 말단에 위치한 클래스가 실제로 사용되는 구현 클래스로서, 이들은 다음과 같다.


- GenericXmlApplicationContext : XML 파일을 설정 정보로 사용하는 스프링 컨테이너

구현 클래스이다. 독립형 어플리케이션을 개발할 때 사용된다.


- AnnotationConfigApplicationContext : 자바 코드를 설정 정보로 사용하는 스프링 컨

테이너이다. 독립형 어플리케이션을 개발할 때 사용된다.


- GenericGroovyApplicationContext : 그루비 언어로 작성된 설정 정보를 사용하는 스

프링 컨테이너이다. 독립형 어플리케이션을 개발할 때 사용된다.


- XmlWebApplicationContext : 웹 어플리케이션을 개발할 때 사용하는 스프링 컨테이너

로서 XML 파일을 설정 정보로 사용한다.


- AnnotationConfigWebApplicationContext : 웹 어플리케이션을 개발할 때 사용하는

스프링 컨테이너로서 자바 코드를 설정 정보로 사용한다


이 클래스들 중 GenericApplicationContext 클래스를 상속받는 세 개의 클래스는 


프링 컨테이너를 코드에서 직접 생성할 때 사용된다. 


이름이 WebApplicationContext로 끝나는 두 개의 클래스는 스프링 MVC를 이용해서 웹 어플리케


이션을 개발할 때 사용된다. 


두 WebApplicationContext 클래스를 코드에서 직접 사용할 일은 없으며,web.xml과 같은


웹 어플리케이션 설정 파일에서 간접적으로 시용하게 된다.


반응형