Spring Boot/자동 설정, 내장 WAS

[Spring boot] 자동 설정

재윤 2025. 7. 21. 16:03
반응형

자동 설정

  • 스프링 부트 → 스프링 프레임워크의 기능을 사용하기 위한 자동 설정(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 클래스들의 경로가 존재함

AutoConfiguration 파일 일부

 

이 설정은 각 파일에 설정된 @Conditional의 조건을 충족할 경우 빈에 등록되고 애플리케이션에 자동 반영된다.

 

💡 @Component 시리즈 애너테이션에서 시리즈는 @Component 애너테이션이 포괄하는 애너테이션들을 통칭하기 위해 사용한 표현이다. 이러한 @Component 시리즈 애너테이션의 대표적인 예
@Controller
@RestController
@Service
@Repository
@Configuration

 

반응형

'Spring Boot > 자동 설정, 내장 WAS' 카테고리의 다른 글

[Spring boot] 내장 WAS  (0) 2025.07.21