김영한님 인강듣고/스프링 핵심원리-기본

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

doriver 2024. 2. 19. 19:39


스프링은 다양한 형태의 설정 정보( java코드, xml, 등등 )를
BeanDefinition으로 추상화해서 사용하한다. 

xml은 직접등록이고
자바코드로 하는건 팩토리메서드로 우회해서 등록하는거

 

BeanDefinition 을 빈 설정 메타정보라 한다.

( BeanDefinition는 interface이고, 여러가지 property들이 있다  )
@Bean , <bean> 당 각각 하나씩 메타 정보가 생성된다.

 

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

 

 

AnnotationConfigApplicationContext 는 AnnotatedBeanDefinitionReader 를 사용해서
AppConfig.class 를 읽고 BeanDefinition 을 생성한다.

 

GenericXmlApplicationContext 는 XmlBeanDefinitionReader 를 사용해서 appConfig.xml
설정 정보를 읽고 BeanDefinition 을 생성한다.