주니어 개발자 성장기

(22.11.18) 7. 스프링 컨테이너(4) - BeanDefinition 본문

Spring/핵심

(22.11.18) 7. 스프링 컨테이너(4) - BeanDefinition

Junpyo Lee 2022. 11. 18. 00:08

BeanDefinition

스프링이 다양한 설정 형식을 지원 할 수 있는 이유.
  • 스프링 컨테이너는 XML, 자바코드인지에 관계 없이 BeanDefinition이라는 추상화(인터페이스)만 알면 된다.
    (추상화에 의존하도록 설계한 것)
  • 'BeanDefinition'을 빈 설정 메타정보라 한다.
    • '@Bean', <bean> 당 각각 하나씩 메타 정보가 생성된다.
  • 스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성한다.

 

  • BeanDefinition을 직접 생성해서 스프링 컨테이너에 등록할 수도 있다. 하지만 실무에서 BeanDefinition을 직접 정의하거나 사용할 일은 거의 없다.
  • BeanDefinition에 대해서는 너무 깊이 있게 이해하기보다는, 스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것 정도만 이해하면 된다.
  • 가끔 스프링 코드나 스프링 관련 오픈 소스의 코드를 볼 때, BeanDefinition 이라는 것이 보일 때가 있다. 이 때 이러한 메커니즘을 떠올리면 된다.

 

 

출처: 스프링 핵심 원리 - 기본편 (김영한)