개념
- Component Scan은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다
- xml 또는 annotation을 통해 사용 가능하다
@ComponentScan
-
basePacakges : 패키지 이름을 통해 스캔할 범위를 지정한다
1@ComponentScan(basePackages="org.academy.order") 2@ComponentScan(basePackages={"org.academy.order", "org.academy.voucher"})
-
basePackageClasses : 해당 클래스가 들어있는 패키지를 범위로 지정한다
1@ComponentScan(basePackageClasses="Order.class") 2@ComponentScan(basePackages={"Order.class", "Voucher.class"})
예제
-
AppCtx.java
1@Configuration 2@ComponentScan(basePackages = {"spring"}) 3public class AppCtx {...}
-
MemberInfoPrinter.java
1@Component("infoPrinter") 2public class MemberInfoPrinter {...}
-
효과
1// before 2MemberInfoPrinter infoPrinter = ctx.getBean("infoPrinter", MemberInfoPrinter.class); 3// after 4MemberInfoPrinter infoPrinter = ctx.getBean(MemberInfoPrinter.class);