일반적으로 메인 클래스에 선언된다.
선언된 클래스를 설정 클래스이자 컴포넌트 스캔의 기준점으로 만든다.
@SpringBootConfiguration과 @EnableAutoConfiguration과 @ComponentScan이 합쳐졌다.
@SpringBootConfiguration
애플리케이션의 구동 속도와 테스팅 속도를 올리는 기능이 추가되었다.
@Configuration
선언된 클래스를 스프링의 설정 클래스로 지정.
설정 클래스를 통해 생성될 빈과 빈들 간의 의존성에 대한 정보를 컨테이너 구현체에 넘긴다.
@EnableAutoConfiguration
자동 설정 기능 활성화.
미리 정의된 설정 정보들을 클래스 패스에 위치한 파일로부터 자동으로 가져와서 설정 클래스에 추가한다.
@ComponentScan
@Component 또는 @Controller, @Service, @Repository 중 하나가 선언된 클래스를 자동으로 찾아서 빈으로 등록한다.
스캔 범위를 직접 지정할 수도 있는데 특별히 지정된 범위가 없다면 선언된 클래스의 패키지와 하위 패키지까지 스캔 범위가 된다.
@SpringBootApplication(@ComponentScan)이 선언된 클래스는 일반적으로 소스 루트 경로에 있다.
스캔에서 제외 또는 포함될 대상을 지정할 수도 있다.
출처/감수/감독/지도/자문: ChatGPT