김영한님 인강듣고/스프링 핵심원리-기본
스프링빈 설정 메타정보 - 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 을 생성한다.