[Component Scan]
: Spring은설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능을 제공함
: @Component가 붙은 모든 클래스를 스프링 빈으로 등록해주기 때문에 설정 정보에 붙여주면 됨
(의존 관계도 자동으로 주입하는 @Autowired 기능 제공)
* Component Scan을 이용할 경우 @Configuration이 붙은 설정 정보도 자동으로 동록되기 때문에 유의해야 함 (@Configuration 코드 내에 @Component 애너테이션이 붙어있기 때문)
정리)
@ComponentScan : @ComponentScan이 등록된 곳에서 @Component를 가져오기 위해 사용
@Autowired : 생성자 의존성 주입에 필요한 설정 정보 대신 의존관계 자동 주입을 해주게 됨
[basePackages]
: 탐색할 패키지의 시작 위치를 지정하고, 해당 패키지부터 하위 패키지 모두 탐색
: @ComponentScan()의 매개변수로 basePackages = ""를 줄 수 있으며, 지정하지 않을 경우 @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치가 됨
* 설정 정보 클래스의 위치를 프로젝트 최상단에 두고 패키지 위치는 지정하지 않는 방법이 편할 수 있음
* Spring Boot를 사용할 경우 @SpringBootApplication(@ComponentScan()이 들어있음)을 이 프로젝트 시작 루트 위치에 두는 것을 추천함
'공부 자료 > Spring' 카테고리의 다른 글
[Spring Core] DI 다양한 의존 관계 중 생성자 주입 권장 이유 (0) | 2022.10.15 |
---|---|
[Spring Core] 컴포넌트 스캔 & 필터 (0) | 2022.10.15 |
[Spring Core] Java 기반 컨테이너 설정 (0) | 2022.10.14 |
[Spring Core] 빈 스코프(Bean Scope) (0) | 2022.10.13 |
[Spring Core] 빈(Bean) (1) | 2022.10.13 |