SPRING

[SPRING] 컨테이너 (Container)

집한구석 2021. 5. 23. 16:31
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