자동 설정 이해

Crow·2021년 8월 2일
0
post-thumbnail

학습목표

  • @SpringBootApplication - @EnableAutoConfiguration 알기
  • Bean 등록 단계

Bean 등록 단계

Springboot App은 @SpringBootApplication 라는 어노테이션에 의해 실행이 가능해진다.
@SpringBootApplication 는 아래 3개의 어노테이션을 같이 쓴 것과 동일하다.

  • @SpringBootApplication
    • @SpringBootConfiguration
    • @ComponentScan
    • @EnableAutoConfiguration

springboot는 두 단계로 Bean 등록을 한다.

  • 1단계 : @ComponentScan
  • 2단계 : @EnableAutoConfiguration

@ComponentScan

Component 관련 어노테이션이 붙어 있는 클래스를 Bean을 등록한다.

  • Component 관련 어노테이션들
    • @Component
    • @Configuration
    • @Repository
    • @Service
    • @Controller
    • @RestController
    • etc.

@EnableAutoConfiguration

springboot는 spring-boot-autoconfigure 라는 라이브러리의
META-INF 디렉토리 내에 spring.factories라는 config 파일이 있다.

springboot는 이 spring.factories라는 config 파일의 config 키-값 정보들을
읽어 들여서 Bean으로 등록한다.

조건에 따라서 Bean으로 등록할 수 있고 등록되지 않게 할 수도 있다.
ex) @ConditionalOnClass 라는 어노테이션을 활용하여 특정 class의 존재 유무
조건에 따라 Bean 등록을 할 것인지 결정한다.

이처럼 @EnableAutoConfiguration이라는 어노테이션은 스프링부트에서 미리 정의해 둔 bean config들을 사용하게 되어서 우리는 아무설정없이springBoot를 이용하는 것 처럼 보이게 되는 것이다.

profile
올빼미를 사냥한 까마귀에서 진화한 독수리

0개의 댓글