본문 바로가기

Spring 기본편

4장-(8). 스프링 빈 설정 메타정보 - BeanDefinition

스프링 빈 설정 메타 정보 - BeanDefinition

- 스프링은 어떻게 이런 다양한 설정 형식을 지원하는 것일까? 그 중심에는 'BeanDefinition' 이라는 추상화가 있습니다.

- 쉽게 이야기해서 '역할과 구현을 개념적으로 나눈 것' 입니다.!! 

    - XML을 읽어서 BeanDefinition을 만들면 됩니다.

    - 자바 코드를 읽어서 BeanDefinition을 만들면 됩니다.

    - 스프링 컨테이너는 자바 코드인지, XML인지 몰라도 됩니다. 오직 BeanDefinition만 알면 됩니다.

- BeanDefinition을 빈 설정 메타정보라고 합니다.

    - @Bean, <bean> 당 각각 하나씩 메타 정보가 생성됩니다.

- 스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성합니다. 

 

정리 

- BeanDefinition을 직접 생성해서 스프링 컨테이너에 등록할 수도 있습니다. 하지만 실무에서 BeanDefinition을 직접 

정의하거나 사용할 일은 거의 없습니다. -> 어려우면 그냥 넘어가면 된다!

- BeanDefinition에 대해서는 너무 깊이있게 이해하기 보다는, 스프링이 다양한 형태의 설정 정보를 BeanDefinition으로

추상화해서 사용하는 것 정도만 이해하면 됩니다.

- 가끔 스프링 코드나 스프링 관련 오픈 소스의 코드를 볼 때, BeanDefinition이라는 것이 보일 때가 있습니다.

이때 이러한 메커니즘을 떠올리면 됩니다.