본문 바로가기

스프링

IOC_DI를 위한 빈설정메타정보작성_공통BeanDefinition_1

* IOC 컨테이너의 가장 기본적인 역할 : 애플리케이션을 구성하는 오브젝트를 생성하고 관리하는 것. (POJO로 만들어진 애플리케이션 클래스와 서비스 오브젝트들이 그 대상.)

- POJO : 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트

* 컨테이너는 어떻게 자신이 만들 오브젝트가 무엇인지 알 수 있을까?

> 빈을 만들기 위한 설정 메타정보는 파일이나 애노테이션 같은 리소스로부터 전용 리더를 통해 읽혀서 BeanDefinition 타입의 오브젝트로 변환된다.(060.ApplicationContext사용법참조)

 

* BeanDefinition

> IOC 컨테이너가 빈을 만들 때 필요한 핵심 정보가 담겨 있다.

> 몇가지 필수항목을 제외하면 디폴트 값이 그대로 적용된다.

> 여러 개의 빈 오브젝트를 만들 수 있기에, BeanDefinition에는 빈의 이름이나 아이디를 나타내는 정보는 포함되지 않고, IOC 컨테이너에 이 BeanDefinition 정보가 등록될 때 이름을 부여해 줄 수 있다.

 

 

빈 하나를 만드는데 필요한 정보는 이렇게 많고, 항복은 더 있다.

 빈설정 메타정보 항목 중에서 가장 중요한 것은 클래스 이름이다. 추상 빈으로 정의하지 않는 한 클래스 정보는 반드시 필요하다. 빈은 오브젝트이고, 오브젝트를 생성하려면 반드시 필요하기 때문이다. 또한 컨테이너에 빈의 메타정보가 등록될 때 꼭 필요한 것은 클래스 이름과 함께 빈의 아이디 또는 이름이다. 일단 이 두 가지만 있으면 간단한 빈 하나를 정의할 수 있다.