모든 클래스를 스캔하려면 시간이 오래 걸리기 때문에 스캔 시작 위치를 설정할 수 있다.
@ComponentScan(
basePackages = "hello.core",
)
hello.core 패키지를 포함해서 하위 패키지를 모두 탐색한다.
여러개 지정도 가능하다.
만약 basePackages를 설정하지 않은 defalut값은 @ComponentScan 애노테이션이 붙은 클래스의 패키지로 설정된다.
그래서 권장하기를 따로 basePackages를 설정하지 않고 @ComponentScan 붙은 클래스를 프로젝트 최상단에 두는 것이다.
컴포넌트 스캔은 @Component뿐만 아니라 아래와 같은 애노테이션도 포함하여 스프링 빈에 등록한다
해당 클래스의 소스를 보면 @Component 애노테이션을 포함하고 있기 때문이다
- @Controller:스프링 MVC 컨트롤러에서 사용
- @Service:스프링 비즈니스 로직에서 사용
- @Repository:스프링 데이터 접근 계층에서 사용
- @Configuration:스프링 설정 정보에서 사용
출처 : 인프런 스프링 핵심 원리 - 기본 편 김영한
'스프링' 카테고리의 다른 글
다양한 의존관계 주입 방법 (0) | 2023.07.19 |
---|---|
스프링 빈 필터 (0) | 2023.07.18 |
컴포넌트 스캔 (0) | 2023.07.17 |
Configuration과 싱글톤 (0) | 2023.07.14 |
싱글톤 방식의 주의점 (0) | 2023.07.11 |