
IoC(Inversion of Control) 컨테이너를 나타내는 인터페이스
. IoC 컨테이너는 애플리케이션 컴포넌트 간의 의존성을 관리하고, 빈(Bean) 객체를 생성하고, 빈의 라이프사이클을 관리하는 주체
ApplicationContext를 통해 컨테이너에 등록된 Bean들을 가져와서 사용한다.
공식문서 를 통해 다양한 구현체들을 확인할 수 있다.
| BeanFactory | ApplicationContext | |
|---|---|---|
| 지연로딩 (Lazy Loading) | 빈을 사용하는 시점에 생성 | 빈을 가능한 미리 로딩하여 애플리케이션이 시작될 때 모든 빈을 미리 생성하여 빈이 많은 경우 유리할 수 있음 (초기 구동은 상대적으로 느릴 수 있음) |
| 자동 완성 (Autowiring) | @Autowired 같은 자동 완성 제한적으로 지원 | @Autowired를 비롯한 다양한 자동 완성 전략을 지원하며, 커스텀 자동 완성 또한 가능 |
| 역할과 책임 | 기본적인 빈의 생성 주입 생명주기 관리 | 다국어지원 및 이벤트 처리, 환경 프로파일, AOP 다양한 기능 제공 |