[Spring] @Component, 컴포넌트 스캔이란?
- Back-End/[Spring]
- 2022. 3. 21.
컴포넌트 스캔(Component Scan)
컴포넌트 스캔이란 스프링이 스프링 빈(Bean)으로 등록될 준비가 된 클래스들을 스캔하여 빈(Bean)으로 등록해주는 과정을 말한다.
@Component 어노테이션이 붙어있는 클래스들은 전부 컴포넌트 스캔의 대상이 된다.
@Configuration, @Service, @Repository, @Controller, 등의 어노테이션에도 전부 @Component이 포함되어 있어 자동으로 컴포넌트 스캔의 대상이 된다.
@ComponentScan과 컴포넌트 스캔 범위
컴포넌트 스캔을 사용하기 위해서는 설정 정보 클래스에 @ComponentScan 어노테이션을 붙여줘야 한다. 이때 컴포넌트 스캔의 범위는 설정 정보 클래스의 패키지를 포함한 모든 하위 패키지가 된다. 이때 모든 자바 클래스를 다 컴포넌트 스캔하면 시간이 오래 걸릴 수 있다. 따라서 아래와 같이 꼭 필요한 위치부터 탐색을 시작하도록 할 수 있다.
@ComponentScan(
basePackages = "hello.core"
)
참고로, 스프링 부트를 사용하면 스프링 부트의 대표 시작 정보인 @SpringBootApplication를 프로젝트 시작 루트 위치에 두는 것이 관례이다. @SpringBootApplication 어노테이션에 @ComponentScan이 들어있기 때문에 하위 패키지 모두 컴포넌트 스캔의 대상이 된다.
반응형
'Back-End > [Spring]' 카테고리의 다른 글
[Spring] 빈(Bean) 생명 주기 콜백에 대하여 (0) | 2022.03.23 |
---|---|
[Spring] 의존관계 자동 주입, 생성자 주입, 수정자 주입, 필드 주입 등, @RequiredArgsConstructor (0) | 2022.03.22 |
[Spring] 싱글톤 패턴 (Singleton Pattern), 싱글톤 컨테이너 (0) | 2022.03.13 |
[Spring] IoC,DI, 스프링 컨테이너(Container), 스프링 빈(Bean)이란? (0) | 2022.02.18 |
[Spring] 의존관계 주입(Dependency Injection), 의존성 주입, DI란? (2) | 2022.02.16 |