AutoConfiguration

Spring Boot가 클래스패스, 설정 값, 빈 존재 여부를 조건으로 판단해 필요한 Bean 설정을 자동으로 등록하는 기능입니다.

핵심 특징

동작 흐름

@SpringBootApplication
  |
  v
@EnableAutoConfiguration
  |
  v
AutoConfigurationImportSelector
  |
  v
Auto-configuration 후보 로딩
  |
  v
조건 필터링
  |
  v
Bean 등록

@EnableAutoConfiguration은 @Import(AutoConfigurationImportSelector.class)를 통해 자동 구성 후보를 가져옵니다. 이후 후보 목록에서 중복, 제외 설정, 조건 불일치 항목을 제거한 뒤 적용 가능한 설정만 등록합니다.

주요 조건 애너테이션

조건의미
@ConditionalOnClass특정 클래스가 클래스패스에 있을 때
@ConditionalOnMissingBean같은 타입의 Bean이 없을 때
@ConditionalOnProperty특정 설정 값이 있을 때
@ConditionalOnWebApplication웹 애플리케이션일 때

왜 필요한가

예를 들어 spring-boot-starter-web을 추가하면 Spring MVC, Jackson, 내장 Tomcat 관련 설정이 자동으로 잡힙니다. 개발자는 공통 설정을 매번 직접 등록하지 않고, 필요한 경우에만 명시적으로 커스터마이징하면 됩니다.

주의사항

핵심 정리

AutoConfiguration은 Spring Boot가 조건에 맞는 설정을 자동으로 적용하는 메커니즘입니다.

핵심은 AutoConfigurationImportSelector가 후보 설정을 가져오고, 조건을 통과한 설정만 Spring Bean으로 등록한다는 점입니다.

→ AutoConfiguration 동작 원리를 설명해주세요

CSLOG에서 보기