스프링

컴포넌트 스캔 탐색 위치

salmon16 2023. 7. 18. 18:31

모든 클래스를 스캔하려면 시간이 오래 걸리기 때문에 스캔 시작 위치를 설정할 수 있다.

@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