[Spring] BeanDefinition

노유성·2023년 7월 13일
0
post-thumbnail

스프링 빈 설정 메타 정보

스프링은 annotation부터 xml 등 다양한 설정 형식을 지원한다. 그리고 이 기술의 중시멩는 BeanDefinition이라는 추상화가 있다. 즉 Spring에게 bean에 대한 정보를 줄 때도 이 부분은 역할과 구현으로 나누었다는 것이다.

xml 파일도 읽어서 BeanDefinition을 만들고 java 코드도 읽어서 BeanDefinition을 만든다. 그래서 BeanDefinition을 빈 설정 메타정보라고도 한다. @Bean, <bean> 하나당 각각 하나씩 메타 정보가 만들어진다.


각 설정 방법마다 어떻게 BeanDefinition을 만들어내는 지에 대해 간단하게 살펴보기 위해 AnnotationConfigApplicationContext class를 한 번 살펴보면,

AnnotatedBeanDefinitionReader class의 객체가 있다. 해당 객체가 AppConfig.class 파일을 읽은 후에 BeanDefinition을 생성하는 것이다. 다른 방법도 마찬가지이다.

BeanDefinition 정보에는 다음과 같은 정보들이 들어간다.

BeanDefinition을 스프링 컨테이너에 등록을 하는 방식이기에 BeanDefinition을 직접 생성해서 등록을 할 수도 있다.

profile
풀스택개발자가되고싶습니다:)

0개의 댓글