인프런 커뮤니티 질문&답변

inflearnstudent님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

@Configuration과 @ComponentScan 질문입니다

해결된 질문

24.01.12 18:05 작성

·

148

1

 

@Configuration이 설정 정보임을 알려주며 동시에 싱글톤을 보장할 수 있게

설정 파일 클래스에 사용하는 것은 이해했습니다.

 

마찬가지로 @ComponentScan 또한 @Component가 붙은 클래스들을 스캔하여 스프링 빈 자동 등록과

동시에 싱글톤 유지가 되도록 하는 것도 이해했습니다.

 

 

여기서 @ComponetScan(빈 자동 등록)을 사용할 때도 @Configuration 어노테이션도 사용이 필수인가요?

@Component 사용 시에도 싱글톤을 유지하기 할 수 있다고 하셨는데,

@ComponetScan위에 @Configuration 어노테이션을 사용하는 이유가 따로 있을까요?

  1. 설정 파일 인식용인가요?

  2. 아래와 같이 AutoAppConfig 파일 자체도 빈에 등록하기 위함인가요?

@Configuration
@ComponentScan(
        /*
          탐색할 패키지의 시작 위치를 지정. 이 패키지 포함 하위 패키지 모두 탐색
          두 개 이상일 때 → basePackages = {"hello.core", "hello.service"}
         */
        basePackages =  "hello.core",
        // 지정한 클래스의 패키지를 탐색 시작 위로 지정
        basePackageClasses = AutoAppConfig.class
)
public class AutoAppConfig {
}

 

답변 부탁드립니다!

감사합니다

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

2024. 01. 13. 18:07

안녕하세요. inflearnstudent님

이런 경우 @Configuration이 필수는 아닙니다.

하지만 스프링에서 설정 정보를 사용할 때 @Configuration 애노테이션을 사용하는 것이 관례이기 때문에 다른 개발자들이 이 코드를 보고 아~ 여기에는 설정을 사용하는 코드구나 라고 직관적으로 이해할 수 있는 장점이 있습니다.

추가로 여기에도 향후에 개발자들이 직접 수동으로 빈을 추가로 등록할 수 있습니다.

감사합니다.