Spring DI Container
Spring DI Container 가 관리하는 객체를 빈(Bean) 이라고 하고, 이 빈(Bean)들을 관리하는 의미로 컨테이너를 BeanFactory 라고 부른다.
- 객체의 생성과 객체 사이의 run-time 관계를 DI 관점에서 볼 때는 컨테이너를 BeanFactory 라고 한다.
- BeanFactory 에서 여러가지 컨테이너 기능을 추가하여 ApplicationContext 라고 부른다.
BeanFactory 와 ApplicationContext
BeanFactory | ApplicationContext |
---|---|
- Bean을 등록, 생성, 조회, 반환 관리함 - 보통 BeanFactory 를 바로 사용하지 않고, 이를 확장한 ApplicationContext 를 주로 사용함 - getBean() 메서드가 정의되어 있음 (Bean 을 조회할 수 있는 메서드) |
- Bean을 등록, 생성, 조회, 반환 관리하는 기능은 BeanFactory 와 같음 - Spring 의 각종 부가 서비스를 추가로 제공함 - Spring 이 제공하는 ApplicationContext 여러종류의 구현 클래스가 존재함 |
BeanFactory 와 ApplicationContext 의 클래스 구조
기본적인 DI Container 역할을 하는 BeanFactory
가 최상위 인터페이스로 존재하며, ApplicationEventPublisher, ListableBeanFactory, MessageSource, RsourceLoader 들을 상속받는 ApplicationContext
인터페이스 존재한다.
궁극적으로 ApplicationContext 가 DI Container 역할을 한다.ApplicaitonContext
를 상속받아서 구체적으로 구현된 클래스는 StaticApplicationContext, GenerixXmlApplicationContext, WebApplicationContext 등이 있고, WebApplicationContext 를 상속받아서 구현된 XmlWebApplicationContext 도 존재한다.
'Java, Spring > 개념정리' 카테고리의 다른 글
Spring JDBC 개요 (0) | 2023.01.14 |
---|---|
AOP(Aspect Oriented Programming) (0) | 2023.01.12 |
DI(Dependency Injection) (0) | 2023.01.12 |
DI, IoC, Container (0) | 2023.01.10 |
관심사의 분리, MVC 패턴 (0) | 2022.08.21 |