bong-u/til

Spring 개념 - Component Scan

수정일 : 2024-11-15

개념

  • Component Scan은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다
  • xml 또는 annotation을 통해 사용 가능하다

@ComponentScan

  1. basePacakges : 패키지 이름을 통해 스캔할 범위를 지정한다

    1@ComponentScan(basePackages="org.academy.order")
    2@ComponentScan(basePackages={"org.academy.order", "org.academy.voucher"})
    
  2. 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);