Spring Boot에서 빈을 어떻게 찾는지 알아보자.
단지. 열어본 소스 기반이 SpringBoot 이기 때문에 명시한다.

SpringBoot 는 Spring의 설정 간편화 해논것 이기 때문에.
Spring 의 로딩방식도 동일하겠다.

Spring 에서 사용하는 ApplicationContext는 BeanFactory의 구현체로
빈을 관리한다. (IOC)

SpringBoot는 어노테이션 기반이고

기본은 AnnotationConfigApplicationContext를 사용하고

web 일경우 AnnotationConfigEmbeddedWebApplicationContext를 사용한다.

context 리소스를 기준으로 basePackage에 대한 Bean 후보를 찾기 위해
basePackage기준 .class 파일 Resource를 찾는다.

간략히 따라한 로직은 아래와 같다.

Image for post
Image for post

찾게된 Resource는 아래와 같다.

Image for post
Image for post

보게되면 일단 basePackage기준으로 모든 class 를 찾는다.
(@Bean 클래스 인지 상관없이 모두 찾는다.)

Image for post
Image for post
Image for post
Image for post

후보 컴포넌트 인지 확인후 후보군에 저장한다.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store