ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 부트 원리 - 자동설정 이해
    백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 6. 08:45
    반응형

    @SpringBootApplication

    @SpringBootApplication은 @SrpingBootconfiguration, @ComponentScan, @EnableAutoconfiguration 이 3개가 합친거라고 볼 수가 있다.

     

     

    @EnableAutoConfiguration

    (@SpringBootApplication 안에 숨어 있음)

    • 처음에 ConponentScan으로 등록하고,@ EnableAutoConfiguration으로 추가적인 Bean을 읽어 등록
      • 1단계: @ComponentScan
      • 2단계: @EnableAutoConfiguration
    • spring.factories 내부에 여러 Configuration들이 존재하고, 조건에 따라서 Bean을 등록

    결국 @SpringBootApplication을 실행하면 @EnableAutoConfiguration 에 의해서  spring.factories 안에 들어있는 많은 설정들을 읽어 Bean들이 생성이되고, 스프링 부트 어플리케이션이 실행

     

    기본적인 스프링 부트 실행 코드

    @SpringBootApplication
    public class SpringBootStudyApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(SpringBootStudyApplication.class, args);
    	}
    
    }

     

    커스텀한 스프링 부트 실행 코드

    • @EnableAutoConfiguration ServletWebServerFactory Bean을 만들어주는 주석5이다 하지만 아래 코드는 이 어노테이션이 없기 때문에 ServeltWebServerApplicationcontext due to missing ServletWebServerFactory Bean 오류가 발생이 된다. 
    • 아래코드는 WebServer로 동작되지 않는다.
    @Configuration
    @ComponentScan
    public class SpringBootStudyApplication {
    	public static void main(String[] args) {
    		SpringApplication application = new SpringApplication(ApplicationContext.class);
    		application.setWebApplicationType(WebApplicationType.NONE);
    		application.run(args);
    	}
    }

     

     

    @ComponentScan

    Srping이 같은 패티지 안에 존재하는 어노테이션이 붙은 객체들을 읽어 Bean으로 등록

    • @Component
    • @Configuration @Repository @Service @Controller @RestControlle

     

    @Configuration

    • @ConditionalOnXxxYyyZzz

     

    반응형

    '백기선(인프런 강의) > 스프링 부트 개념과 활용' 카테고리의 다른 글

    내장 웹 서버 이해  (0) 2020.04.07
    자동설정 만들기  (0) 2020.04.06
    스프링 부트 개념과 활용  (0) 2020.04.02
    의존성 관리 이해  (0) 2020.04.02
    스프링 부트 시작하기  (0) 2020.03.31
Designed by Tistory.