반응형
자동 설정
- 스프링 부트 → 스프링 프레임워크의 기능을 사용하기 위한 자동 설정(Auto Configuration)을 지원
- 자동 설정은 애플리케이션에 추가된 라이브러리를 실행하는데 필요한 환경 설정을 알아서 찾아준다.
예제
@SpringBootApplication
public class Chapter1Application {
public static void main(String[] args) {
SpringApplication.run(Chapter1Application.class, args);
}
}
@SpringBootApplication
- 이걸 붙이기만 해도 Spring이 자동으로 필요한 설정과 Bean을 찾아서 알아서 등록해줌
@SpringBootApplication 애너테이션
- 3개의 애너테이션이 합쳐진 것
포함된 어노테이션 역할
@SpringBootConfiguration | 설정 파일임을 나타냄 (@Configuration과 유사) |
@EnableAutoConfiguration | 자동 설정 기능을 켬 |
@ComponentScan | @Component, @Service, @Controller 같은 Bean을 자동으로 찾아 등록 |
실행 순서
1. @ComponentScan
→ @Component, @Service, @Repository 등 어노테이션 붙은 클래스들을 자동으로 스캔해서 Bean으로 등록
2. @EnableAutoConfiguration
→ Spring이 “지금 클래스패스에 어떤 라이브러리들이 들어있지?” 확인함
→ 예: H2 DB, Web, JPA 등
3. AutoConfigurationImportSelector 라는 클래스가 동작해서
→ META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
라는 설정 파일을 읽고
→ 해당 라이브러리에 맞는 자동 설정 클래스들을 찾아서 Spring 컨테이너에 등록
예시: H2 데이터베이스 라이브러리를 추가했다면?
- Spring Boot는 "앗, H2 라이브러리가 있네!" 하고 감지함
- H2를 위한 자동 설정(H2ConsoleAutoConfiguration 등)을 읽어서
- 설정 파일 없이도 자동으로 웹 콘솔, DB 연결 Bean 등을 등록
AutoConfiguration.imports 파일을 열면 utoConfiguration 클래스들의 경로가 존재함
이 설정은 각 파일에 설정된 @Conditional의 조건을 충족할 경우 빈에 등록되고 애플리케이션에 자동 반영된다.
💡 @Component 시리즈 애너테이션에서 시리즈는 @Component 애너테이션이 포괄하는 애너테이션들을 통칭하기 위해 사용한 표현이다. 이러한 @Component 시리즈 애너테이션의 대표적인 예
@Controller
@RestController
@Service
@Repository
@Configuration
반응형
'Spring Boot > 자동 설정, 내장 WAS' 카테고리의 다른 글
[Spring boot] 내장 WAS (0) | 2025.07.21 |
---|