스프링 컨테이너는 스프링에서 자바 객체들을 관리하는 공간을 의미하며 스프링 컨테이너에 의해서 관리되는 자바 객체를 '빈'이라고 부릅니다.
스프링 컨테이너를 통해서 객체의 생성/주입/관리 등을 개발자가 아닌 스프링 프레임워크가 담당하게 되므로 IoC 컨테이너라고 부르기도 합니다.
스프링 컨테이너는 최상위 인터페이스인 BeanFactory 와 이를 상속하여 부가 기능을 추가한 ApplicationContext 인터페이스를 구현하고 있습니다.
BeanFactory 인터페이스에는 빈의 등록, 생성, 관리 등의 역할을 담당하는 기능들이 정의되어 있고 ApplicationContext 인터페이스에는 BeanFactory를 상속 받아 기본적인 빈의 생명주기 관리는 물론 그 외 부가 기능들이 정의되어 있습니다.
ApplicationContext 가 제공하는 부가 기능 중 대표적인 기능으로는 Profile을 설정할 수 있게 하는 기능이 있습니다.
그 외에도 BeanFactory를 Lazy-Loading 방식으로 빈 빈을 로딩하는 반면 ApplicationContext 는 Eager-Loading 방식으로 런타임 실행 시 미리 모든 빈을 로딩한다는 차이가 있습니다.
'기술 면접 질문' 카테고리의 다른 글
List, Set, Map, HashMap 의 차이에 대해서 설명해주세요 (0) | 2023.07.24 |
---|---|
의존성 주입에 대해 설명해주세요 (0) | 2023.07.23 |
제네릭에 대해 설명하고 컬렉션 클래스에서 왜 제네릭을 사용하는 지 설명해주세요 (0) | 2023.07.21 |
JPA의 영속성 컨텍스트에 대해 설명해주세요 (0) | 2023.07.21 |
Spring MVC 에서의 예외 처리 기법에 대해 설명해주세요 (0) | 2023.07.21 |