Stereotype Annotation 및 bean 등록 과정
2022. 3. 1. 22:53ㆍSpring
stereotype annotation - 가장 기본적인 어노테이션. @Component, @Repository, @Service, @Controller, @Configuration이 있음. @Repository, @Service, @Controller, @Configuration은 @Component 어노테이션을 포함하고 있음.
스프링/스프링 부트는 @ComponentScan 을 통하여 빈들을 찾고, 등록함.
- basePackages, basePackageClasses로 스캔 시작할 위치를 지정, 생략시 스캔 위치가 현재 클래스의 패키지로 지정.
- ComponentScanAnnotationParser가 @ComponentScan를 읽으며 설정 파일 파싱.
- ComponentScanAnnotationParser는 ClassPathBeanDefinitionScanner 를 호출하며 현재 base package를 기점으로 하위 패키지들을 탐색, 패키지의 모든 파일들의 메타데이터를 확인 & @Component 어노테이션(및 stereo annotation)이 적용된지 확인.
- 이후 매개변수로 넘어온 빈 팩토리(registerBeanDefinition, 레지스터)에 빈 등록.
참고 : https://minkukjo.github.io/framework/2020/07/09/Spring-133/
참고2: https://velog.io/@hyun-jii/스프링-component-scan-개념-및-동작-과정
'Spring' 카테고리의 다른 글
@Autowired 를 가급적 쓰지 말라는 이유 (0) | 2022.03.01 |
---|