AutoConfiguration 동작 원리

김명수·2026년 2월 19일

매일메일

목록 보기
111/127
post-thumbnail

AutoConfiguration 동작 원리

●AutoConfiguration 동작 원리

  • 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할 클래스가 무엇인지 알 수 있게 됨

  • 간단한 메서드 동작 과정 설명
    1.getCandidateConfigurations(annotationMetadata, attributes); - AutoConfiguration의 후보들을 가져옴
    2.removeDuplicates(configurations); - 중복을 제거
    3.getExclusions(annotationMetadata, attributes); - 자동 설정에서 제외되는 설정에 대한 정보를 가져옴
    4.configurations.removeAll(exclusions); - 제외되는 설정을 제거
    5.getConfigurationClassFilter().filter(configurations); - 필터를 적용

profile
신입개발자

0개의 댓글