Stereotype Annotation 및 bean 등록 과정

2022. 3. 1. 22:53Spring

stereotype annotation - 가장 기본적인 어노테이션. @Component, @Repository, @Service, @Controller, @Configuration이 있음. @Repository, @Service, @Controller, @Configuration은 @Component 어노테이션을 포함하고 있음. 

스프링/스프링 부트는 @ComponentScan 을 통하여 빈들을 찾고, 등록함.

  1. basePackages, basePackageClasses로 스캔 시작할 위치를 지정, 생략시 스캔 위치가 현재 클래스의 패키지로 지정.
  2. ComponentScanAnnotationParser가 @ComponentScan를 읽으며 설정 파일 파싱.
  3. ComponentScanAnnotationParser는 ClassPathBeanDefinitionScanner 를 호출하며 현재 base package를 기점으로 하위 패키지들을 탐색, 패키지의 모든 파일들의 메타데이터를 확인 & @Component 어노테이션(및 stereo annotation)이 적용된지 확인.
  4. 이후 매개변수로 넘어온 빈 팩토리(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