-
스프링 부트 원리 - 자동설정 이해백기선(인프런 강의)/스프링 부트 개념과 활용 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 - 처음에 ConponentScan으로 등록하고,@ EnableAutoConfiguration으로 추가적인 Bean을 읽어 등록