목차
BeanDefinition
스프링 컨테이너는 BeanDefinition 을 이용해 스플링 빈을 생성합니다.
스프링 컨테이너는 BeanDefinition
에 정의된 빈 메타정보를 이용해 스프링 빈을 생성합니다. 빈 메타 정보는 XML, 자바코드 등으로 작성되며 @Bean
, <bean>
당 하나씩 메타정보가 생성됩니다. 스프링은 정의된 메타정보들을 읽어와 BeanDefinition 을 생성합니다.
서로 다른 방식으로 정의된 빈 메타정보를 BeanDefinition 으로 생성하기 위해 스프링은 다양한 BeanDefinitionReader 를 제공합니다.
AnnotationConfigApplicationContext 는 AnnotatedBeanDefinitionReader 를 사용해서 AppConfig.class 를 읽고 BeanDefinition 을 생성합니다.
GenericXmlApplicationContext 는 XmlBeanDefinitionReader 를 사용해서 appConfig.xml 설정 정보를 읽고 BeanDefinition 을 생성합니다.
새로운 형식의 설정 정보가 추가되면, XxxBeanDefinitionReader를 만들어서 BeanDefinition 을 생성하면 된다.
BeanDefinition 확인
Bean을 등록하는 방법은 크게 두가지가 있다 Bean을 직접 등록하는 방법과 FactoryMethod 를 이용한 방법이 있습니다. Bean 을 직정 등록하는 방법은 XML 파일에 Bean 정보를 직정 등록하는 방식이고 FactoryMethod 를 이용한 방식은 class 와 어노테이션을 이용해 등록하는 방식입니다.
public class BeanDefinitionTest { |