해결된 질문
작성
·
158
1
@Configuration이 설정 정보임을 알려주며 동시에 싱글톤을 보장할 수 있게
설정 파일 클래스에 사용하는 것은 이해했습니다.
마찬가지로 @ComponentScan 또한 @Component가 붙은 클래스들을 스캔하여 스프링 빈 자동 등록과
동시에 싱글톤 유지가 되도록 하는 것도 이해했습니다.
여기서 @ComponetScan(빈 자동 등록)을 사용할 때도 @Configuration 어노테이션도 사용이 필수인가요?
@Component 사용 시에도 싱글톤을 유지하기 할 수 있다고 하셨는데,
@ComponetScan위에 @Configuration 어노테이션을 사용하는 이유가 따로 있을까요?
설정 파일 인식용인가요?
아래와 같이 AutoAppConfig 파일 자체도 빈에 등록하기 위함인가요?
@Configuration
@ComponentScan(
/*
탐색할 패키지의 시작 위치를 지정. 이 패키지 포함 하위 패키지 모두 탐색
두 개 이상일 때 → basePackages = {"hello.core", "hello.service"}
*/
basePackages = "hello.core",
// 지정한 클래스의 패키지를 탐색 시작 위로 지정
basePackageClasses = AutoAppConfig.class
)
public class AutoAppConfig {
}
답변 부탁드립니다!
감사합니다
답변 1
2
안녕하세요. inflearnstudent님
이런 경우 @Configuration이 필수는 아닙니다.
하지만 스프링에서 설정 정보를 사용할 때 @Configuration 애노테이션을 사용하는 것이 관례이기 때문에 다른 개발자들이 이 코드를 보고 아~ 여기에는 설정을 사용하는 코드구나 라고 직관적으로 이해할 수 있는 장점이 있습니다.
추가로 여기에도 향후에 개발자들이 직접 수동으로 빈을 추가로 등록할 수 있습니다.
감사합니다.