자동 주입과 함께 사용하는 추가기능이 컴포넌트 스캔이다. 컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다.
import org.springframework.stereotype.Component;
@Component
public class MemberDao {
애노테이션에 속성값을 사용할 수도 있다.
import org.springframework.stereotype.Component;
@Component("infoprinter")
public class MemberInfoPrinter {
->빈으로 등록할때 사용할 이름이 결정된다. @Component 애노테이션에 값을 주지 않으면 클래스 이름의 첫 글자를 소문자로 바꾼 이름을 빈 이름으로 사용한다.
이렇게 등록한 경우 설정한 빈 이름으로 코드를 작성해야한다.
MemberInfoPrinter infoPrinter =
ctx.getBean("infoprinter", MemebrInfoPrinter.class);
import org.springframework.context.annotation.ComponentScan;
@Configuration
@ComponentScan(basePackages = {"spring"})
public class AppCtx {
{"spring"}은 스캔 대상 패키지 목록을 지정한다. spring 패키지와 그 하위 패키지에 속한 클래스를 스캔 대상으로 설정했다.