2021 Spring Study

Spring 7. 컴포넌트 스캔 핵심 요약

Yerim Kim 2021. 1. 5. 17:32

컴포넌트 스캔 기능을 사용하면, 설정파일에서 직접 Bean 등록을 하지않고도 스프링이 직접 특정 클래스 타입의 객체를 생성하여 빈으로 등록하게 할 수 있다.

 

1.

빈으로 등록하고자 하는 객체의 클래스에 @Component 를 붙인다.

...
import org.springframework.stereotype.Component;

@Component
public class UserDao {
    ...
}

 

2.

설정파일에 @ComponentScan 을 붙인다.

이 때 basePackages 에 @Component 를 붙인 클래스의 패키지 경로를 쓴다.

...
import org.springframework.context.annotation.ComponentScan;
...

@Configuration
@ComponentScan(basePackages = {"spring"})
public class AppContext {    // 설정파일
}

 

3. 빈 등록은 끝났다. 이제 사용하면 된다.

void main(String[] args) {
    ApplicationContext appContext =
        new AnnotationConfigApplicationContext(AppContext.class);
    
    UserDao userDao = appContext.getBean("userDao", UserDao.class);
}