@ComponentScan

2023. 5. 30. 15:02기술 창고/어노테이션 창고

728x90
SMALL

@ComponentScan

Component로 지정된 Bean 객체를 찾기위한 어노테이션으로 Bean 객체를 찾아 자동으로 생성하고 관리해주는 어노테이션입니다.

 

@Configuration
@ComponentScan // Component로 선언된 객체가 있는 경로로 가서 해당 객체를 자동으로 Bean 객체 생성 주입
public class GamingAppLauncherApplication {

    public static void main(String[] args) {

        try (var context = new AnnotationConfigApplicationContext(GamingAppLauncherApplication.class)) {
            context.getBean(GamingConsole.class).up();
            context.getBean(GameRunner.class).run();
        }

    }
}

 

 

@ComponentScan 을 사용할 시 경로 옵션을 주어 원하는 경로 패키지로 매핑시켜 해당 경로에 있는 Component 객체들을 대상으로 찾을 수 있습니다.

@Configuration
@ComponentScan("com.udemy.learnspringframework.app1.game") // Component로 선언된 객체가 있는 경로로 가서 해당 객체를 자동으로 Bean 객체 생성 주입
public class GamingAppLauncherApplication {

    public static void main(String[] args) {

        try (var context = new AnnotationConfigApplicationContext(GamingAppLauncherApplication.class)) {
            context.getBean(GamingConsole.class).up();
            context.getBean(GameRunner.class).run();
        }

    }
}

 

만약 ComponentScan 에 직접적으로 패키지 경로 옵션을 지정해주지 않았다면 기본적으로 현재 ComponentScan이 적용된 클래스의 패키지 내부를 기본으로 잡고 Scan을 수행합니다.

 

728x90
반응형
LIST

'기술 창고 > 어노테이션 창고' 카테고리의 다른 글

@Primary  (0) 2023.05.30
@Qualifier  (0) 2023.05.30
@Component  (0) 2023.05.30
@Bean  (0) 2022.12.23
@Configuration  (0) 2022.12.23