ComponentScan
컴포넌트 스캔은 @Component를 명시하여 빈을 추가한다. 클래스 위에 @Component를 붙이면 스프링이 알아서 스프링 컨테이너에 빈을 등록한다.
컴포넌트 스캔의 대상?
@Component 외에
@Controller, @Service,
@Repository, @Configuration는
@Component의 상속을 받고 있으므로
모두 컴포넌트 스캔의 대상이다.
- @Controller
@Controller: 스프링 MVC 컨트롤러로 인식된다.
- @Repository
@Repository: 스프링 데이터 접근 계층으로 인식하고 해당 계층에서 발생하는 예외는 모두 DataAccessException으로 변환한다.
- @Service
@Service: 특별한 처리는 하지 않으나, 개발자들이 핵심 비즈니스 계층을 인식하는데 도움을 준다.
- @Configuration
@Configuration: 스프링 설정 정보로 인식하고 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다. (물론 스프링 빈 스코프가 싱글톤이 아니라면 추가 처리를 하지 않음.)