728x90
정의
- 인스턴스의 생명주기를 관리
- 생성된 인스턴스들에게 추가적인 기능을 제공
SPRING에서 컨테이너(DI / IOC 컨테이너)로 인스턴스 관리시 장점
- 인스턴스의 스코프를 제어할 수 있음
- 인스턴스의 생명주기를 제어할 수 있음
- AOP방식으로 공통기능을 집어 넣을 수 있음
- 의존한느 컴포넌트 간의 결합도를 낮춰서 단위테스트를 쉽게 만듬
SPRING에서 제공하는 컨테이너
- BeanFactory : IoC / DI에 대한 기본기능을 가지고 있음
- ApplicationContext : BeanFactory의 모든 기능을 포함하며, 일반적으로 BeanFactory보다 추천됨 트랜잭션처리, AOP 등에 대한 처리를 할 수 있음, BeanPostProcessor, BeanFactoryPostProcessor 등을 자동으로 등록하고, 국제화처리, 어플리케이션 이벤트 등을 처리할 수 있음, 컨테이너 생성시 모든 빈 정보를 메모리에 로딩함
- WebApplicationContext : 웹 환경에서 사용할 때 필요한 기능이 추가된 애플리케이션 컨텍스트, 가장 많이 사용함 (특히 XmlWebApplicationContext를 가장 많이 사용)
ApplicationContext 종류
종류 | 설명 |
AnnotationConfigApplicationContext | 하나 이상의 Java Config 클래스에서 스플링 애플리케이션 컨텍스트를 로딩(주로 많이 사용) |
AnnotationConfigWebApplicationContext | 하나 이상의 Java config 클래스에서 웹 애플리케이션 컨텍스트를 로딩 |
ClassPathXmlApplicationContext | 클래스 패스에 위치한 xml파일에서 컨택스트를 로딩 |
FileSystemXmlApplicationContext | 파일 시스템에서 지정된 xml파일에서 컨텍스트를 로딩 |
XmlWebApplicationContext | 웹 애플리케이션에서 포함된 xml파일에서 컨텍스트를 로딩 |
ApplicationContext는 기본적으로 AbstractApplicationContext의 Interface를 구현한 구현체임
'SPRING' 카테고리의 다른 글
[SPRING] DISPATCHER-SERVLET (0) | 2021.06.07 |
---|---|
[SPRING] Bean (0) | 2021.05.23 |
[SPRING] JPA 연관관계 (0) | 2021.05.19 |
[SPRING] 의존성 주입 (0) | 2021.05.17 |
[SPRING] JPA 영속성 컨텍스트 (0) | 2021.05.16 |