Spring/boot

[Spring-boot] 자동설정의 이해

jay Joon 2021. 1. 12. 21:35

spring-boot-study

[ Inflearn ] 스프링 부트 개념과 활용 강의를 듣고 챕터별 간단하게 정리합니다.

내용적 오류가 존재 할 수 있으며 부족한 부분은 언제든지 지적해주시면 감사드립니다.


3. 자동설정의 이해

Spring boot 을 실행 할때 우리는 @SpringBootApplication 애노테이션이 붙은 클래스를 찾아가서 실행을한다.

image


@SpringBootApplication 이라는 애노테이션 만으로 webApplication 을 구동 시킬수있다.*

어떻게 @SpringBootApplication 이라는 애노테이션만으로 많은 자동설정을 할 수 있을까?

@SpringBootApplication 애노테이션을 알아보자

image

여기서 핵심은

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

이 3가지의 애노테이션이다.

  1. @SpringBootConfiguration

    -> @Configuration 이랑 동일하다 @Configuration 은 빈을 등록하기위한 설정 애노테이션이다 spring 기초에서 많이 보았다.

  1. @ComponentScan

    -> @Component 가 달린 애노테이션을 찾아 빈으로 등록해주는 애노테이션이다.

  1. @EnableAutoConfiguration

    -> 여태까지 springboot 를 사용하고 처음보는 애노테이션이다. 더 바로 아래에서 자세히알아보자.

@EnableAutoConfiguration

@EnableAutoConfiguration 애노테이션은

image

java -> resource 디렉토리 -> META-INF-> spring.factories 파일에 있는

org.springframework.boot.autoconfigure.EnableAutoConfiguration

키값에 존재하는 value 들을 자동으로 설정해준다.

image

어? 그러면은 @EnableAutoConfiguration , @ComponentScan 둘 중 누가 먼저 실행되어 빈을 등록 할까?

1단계: @ComponentScan

2단계: @EnableAutoConfiguratio

순으로 실행되어 빈을 등록한다. 이 부분은 중요하니 꼭 기억하자 !