4장 도서 쇼핑몰의 계층적 공통 모듈 구축에서 생성한 컨트롤러인 BookController와 WelcomeController, BookController와 의존 관계에 있는 자바 클래스인 저장소 객체 BookRepositoryImpl과 서비스 객체 BookServiceImpl은 서로 다른 패키지 경로에 있습니다. 이처럼 생성된 모든 컨트롤러 및 의존 관계에 있는 자바 클래스를 일일이 스프링 MVC 환경 설정 파일에 빈 객체로 등록해야 한다면 번거롭겠죠.
다음과 같이 <context:component-scan> 요소의 base-package 속성에 공통 패키지 com.springmvc.*를 설정하면 설정된 패키지 하위에 있는 컨트롤러 및 의존 관계에 있는 자바 클래스를 검색하여 빈 객체로 자동으로 등록합니다.
스프링 MVC 환경 설정 파일에 컴포넌트 스캔 적용
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
...
<context:component-scan base-package="com.springmvc.*"/> // 컨트롤러의 빈 객체 등록
</beans:beans>