스프링 빈이 등록되는 과정(4)

우리는 지난 포스팅을 통해 xml, java-config 방식의 빈등록 과정을 살펴봤으며 이번시간에는 내용을 정리해보려고 합니다.

예제들은 모두 Spring Boot을 기준으로 진행되었으나 핵심적인 원리는 스프링 모두 같습니다.

스프링이 올라간다는 것은 스프링의 컨텍스트가 올라간다는 건데 스프링 컨텍스트가 올라갈때 factory를 가지게 됩니다. (정확히는 Spring의 ApplicationContextBeanFactory를 구현한 구현체입니다, 물론 lazy, pre-loading의 차이점은 있습니다)

스프링은 빈설정에 따라 다르게 진행되는데 java-config인 경우 AnnotationConfigApplicationContext를 통해 동작을 확인해봤습니다.
AnnotatedBeanDefinitionReader를 통해 componentScan을 하여 BeanDefinition을 정의하는 것을 확인했습니다.

xml도 마찬가지로 BeanDefinition을 정의하는데요. XmlBeanDefinitionReader을 통해 xml파일의 document를 만들어서 진행하는것을 살펴봤습니다

xml, groovy의 경우 ConfigurationClassBeanDefinitionReader를 통해 읽어오는데 ApplicationContext에서 PostProcessorRegistrationDelegate에게 빈등록을 위임하면 딜리게이트가 빈등록을 진행하면서 ConfigurationClassBeanDefinitionReader까지 연결됬었죠

결국 어떤 식으로 설정을 하든 빈등록을 하려면 BeanDefinition으로 정의된 메타데이터를 만들면 되는것입니다.

1

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

WordPress.com에서 무료 웹사이트 또는 블로그 만들기.

위로 ↑

%d 블로거가 이것을 좋아합니다: