참고문헌
3. IoC 컨테이너 1부: 스프링 IoC 컨테이너와 빈
Inversion of Control: 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법을 말함.
스프링 IoC 컨테이너
- 의존성 주입을 개발자가 직접 할 게 아니라, 편하게 쓰기 위해서 컨테이너라는 공간에 객체를 등록해놓고 편하게 꺼내 쓸 수 있도록 함 (스프링 프레임워크에서 고안됨)
- BeanFactory : 컨테이너를 구현한 인터페이스
- 애플리케이션 컴포넌트의 중앙 저장소.
- 빈 설정 소스로부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다.
빈(Bean)
- 스프링 IoC 컨테이너가 관리 하는 객체.
- 장점
- 의존성 관리
- 싱글톤으로 빈을 관리하고 꺼내쓸 수 있게 되어 리소스 절약
- 라이프사이클 인터페이스 관리가 유용
- 예 : @PostConstruct
- 어떤 빈이 만들어진 후에 추가적인 작업을 할 수 있음
ApplicationContext
- BeanFactory를 확장하여, 더 다양한 기능을 가진 인터페이스
- MessageSource : 메시지 소스 처리 기능 (i18n)
- ResourceLoader : 리소스 로딩 기능
- 이벤트 발행 기능