IoC 컨테이너
- IoC (Inversion of Control): 제어 역전
- 일반적으로는 프로그래밍을 작성할 때, 프로그램의 실행부터 종료까지 모든 코드의 흐름을 개발자가 만든다
- IoC 개념을 적용한 개발 방식은 개발자가 몇 가지 셋팅만 해준다면, 셋팅해둔 정보를 토대로 프레임워크가 코드의 흐름을 제어함
- 종류: BeanFactory, ApplicationContext
BeanFactory
- 클래스를 통해 객체를 생성하고 이를 전달함
- 상속 등 객체 간의 관계를 형성하고 관리함
- Bean에 관련된 설정을 위한 xml 파일은 즉시 로딩하지만 객체는 개발자가 요구할 때 생성함
Class ClassPathResource
ApplicationContext
- 클래스를 통해 객체를 생성하고 이를 전달함
- 상속 등 객체 간의 관계를 형성하고 관리함
- 국제화 지원 등 문자열에 관련된 다양한 기능을 제공함
- 리스너로 등록되어 있는 Bean에 이벤트를 발생시킬 수 있음
- Bean에 관련된 설정을 위한 xml 파일은 즉시 로딩하면서 객체를 미리 생성해서 가지고 있음
POJO(Plain Old Java Object) Class
- 자바 모델이나 기능, 프레임워크 등에 따르지 않고 홀로 독립적이며 단순한 기능만을 가진 객체들
- 자바에서는 이러한 객체들을 Bean이라고 부름
- POPO(PHP), POCO(닷넷 프레임워크), PODS(C++), POD(Perl)