AutoConfiguration의 시작은 @SpringBootApplication 어노테이션 안에 있는@EnableAutoConfiguration 이라는 애노테이션입니다.
@EnableAutoConfiguration은 @Import(AutoConfigurationImportSelector.class)를 통해 자동 구성 클래스를 가져옵니다.
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class<?>[] exclude() default {};
String[] excludeName() default {};
}
자동 구성 클래스를 가져올 때는 AutoConfigurationImportSelector 클래스의 selectImports(AnnotationMetadata annotationMetadata) 라는 메서드를 이용하고, getAutoConfigurationEntry(AnnotationMetadata annotationMetadata); 메서드를 통해 Import할 클래스가 무엇인지 알 수 있게 됩니다.
- 간단한 메서드 동작 과정 설명
- getCandidateConfigurations(annotationMetadata, attributes); - AutoConfiguration의 후보들을 가져온다.
- removeDuplicates(configurations); - 중복을 제거한다.
- getExclusions(annotationMetadata, attributes); - 자동 설정에서 제외되는 설정에 대한 정보를 가져온다.
- configurations.removeAll(exclusions); - 제외되는 설정을 제거한다.
- getConfigurationClassFilter().filter(configurations); - 필터를 적용한다.
LIST
'Spring & Backend' 카테고리의 다른 글
| Spring과 Spring Boot의 차이를 말해주세요. 백엔드와 관련된 질문이에요. (0) | 2025.09.24 |
|---|---|
| synchronized는 간단‧안전하지만, 성능·유연성에서 트레이드오프 (0) | 2025.09.23 |
| 전자정부 프레임워크의 변천사 (2) | 2025.09.22 |
| Redis와 직렬화 (0) | 2025.09.22 |
| 톰캣에 대해서 설명해주세요. (0) | 2025.09.22 |
