Spring

컴포넌트스캔 탐색위치와 기본 스캔 대상

당근개발자 2021. 11. 8. 23:08

모든 자바 클래스를 다 컴포넌트 스캔하면 시간이 오래 걸린다.그래서 꼭 필요한 위치부터 탐색하도록 시작 위치를 지정할 수 있다.

-basePackages : 탐색할 패키지의 시작 위치를 지정한다. 이 패키지를 포함해서 하위 패키지를 모두 탐색한다.

-- basePackages={"hello.core" , "hello.service"}  // 이렇게 시작위치를 여러개 지정 할 수있다.

-basePackageClasses : 지정한 클래스의 패키지를 탐색 시작위로 지정한다.

-만약 지정하지 않으면, @ComponentScan 이 붙은 설정 정보 클래스의 패키지가 시작 위치가 된다

 

-권장하는 방법

: 패키지 위치를 지정하지않고, 설정 정보 클래스의 위치를 프로젝트 최상단에 두는 것이다. 최근 스프링 부트도 이 방법을 기본으로 제공한다.

 

-컴포넌트 스캔 기본대상

컴포넌트 스캔은 @Component 뿐만 아니라 다음 내용도 추가로 대상에 포함하다.

@Componete

@Controller

@Service

@Repository

@Configuration