본문 바로가기

공부 자료/Spring

[Spring Core] Component Scan

[Component Scan]

: Spring은설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능을 제공함

: @Component가 붙은 모든 클래스를 스프링 빈으로 등록해주기 때문에 설정 정보에 붙여주면 됨

(의존 관계도 자동으로 주입하는 @Autowired 기능 제공)

  * Component Scan을 이용할 경우 @Configuration이 붙은 설정 정보도 자동으로 동록되기 때문에 유의해야 함   (@Configuration 코드 내에 @Component 애너테이션이 붙어있기 때문)

 

정리)

 @ComponentScan : @ComponentScan이 등록된 곳에서 @Component를 가져오기 위해 사용

 @Autowired : 생성자 의존성 주입에 필요한 설정 정보 대신 의존관계 자동 주입을 해주게 됨

 

 

[basePackages]

: 탐색할 패키지의 시작 위치를 지정하고, 해당 패키지부터 하위 패키지 모두 탐색

: @ComponentScan()의 매개변수로 basePackages = ""를 줄 수 있으며, 지정하지 않을 경우 @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치가 됨

* 설정 정보 클래스의 위치를 프로젝트 최상단에 두고 패키지 위치는 지정하지 않는 방법이 편할 수 있음

* Spring Boot를 사용할 경우 @SpringBootApplication(@ComponentScan()이 들어있음)을 이 프로젝트 시작 루트 위치에 두는 것을 추천함