스프링 부트 개념과 활용
3. 스프링 부트 원리
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/springboot-concept-uses/tree/chap03-03-autoconfigure
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
3. 자동 설정 이해
@SpringBootApplication
@SpringBootApplication
은 세개의 어노테이션이 합쳐져 있음@EnableAutoConfiguration
으로 인해 여러가지 설정이 자동으로 되고 웹 애플리케이션이 동작함
@SpringBootConfiguration
@ComponentScan
@EnableAutoConfiguration
빈은 사실 두 단계로 나눠서 읽힘
- 1단계 :
@ComponentScan
- 2단계 :
@EnableAutoConfiguration
@EnableAutoConfiguration
없이 애플리케이션을 구동할 수 있음
단 아래와 같이 설정하면 웹 서버로서의 동작은 안함
@Configuration
@ComponentScan
public class SpringinitApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(Application.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.run(args);
}
}
@ComponentScan
아래의 어노테이션으로 지정된 클래스들은 모두 빈으로 등록됨
@Component
@Configuration
@Repository
@Service
@Controller
@RestController
@EnableAutoConfiguration
spring-boot-autoconfigure
하위의spring.factories
아래의 파일의 meta에 설정에 필요한 자바 설정파일들을 아래의 키 값 밑에 설정되어있는 클래스들을 참조하여 모두 읽어들임
수 많은 자동 설정 파일들이 조건에 따라 적용되어 수많은 빈들이 생성이 되고
내장 톰캣을 사용해서 서블릿 컨테이너에서 웹 애플리케이션 하나가 동작하게 됨
org.springframework.boot.autoconfigure.EnableAutoConfiguration
@ConditionalOnXxxYyyZzz
전부 다 읽어드리는 것은 아님
조건에 따라 어떤 빈은 등록하기도 하고 등록 안하기도 함
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 부트 개념과 활용] 3-5. 내장 웹 서버 이해 (0) | 2019.10.17 |
---|---|
[스프링 부트 개념과 활용] 3-4. 자동 설정 만들기 (0) | 2019.10.16 |
[스프링 부트 개념과 활용] 3-2. 의존성 관리 응용 (0) | 2019.10.14 |
[스프링 부트 개념과 활용] 3-1. 의존성 관리 이해 (0) | 2019.10.13 |
[스프링 부트 개념과 활용] 2-4. 스프링 부트 프로젝트 구조 (0) | 2019.10.12 |
댓글