Springboot 원리 정리
Springboot 스프링 부트 원리 정리
백기선님의 강의인 Springboot 개념과 활용 강의를 듣고 공부한 내용을 정리한 글
스프링 부트 원리 정리
의존성 관리
gradle에 spring-boot-starter-web을 추가하기만 해도 자동으로 여러 의존성들을 자동으로 가져온다.
starter는 의존성을 관리하며 spring-boot-dependencies에 스프링부트가 사용하는 주요 라이브러리 버전들을 관리하고 있다.
자동 설정
@SpringbootApplication
애노테이션 내부에는 EnableAutoConfiguration
과 ComponentScan
이라는 2가지 애노테이션을 갖는다.
이 EnableAutoConfiguration
과 ComponentScan
의 목적은 @SpringbootApplication
이 달려있는 패키지에 존재하는 모든 빈들을 읽어서 IoC 컨테이너로 관리하기 위해 존재하는 애노테이션이다.
일반적으로 스프링 부트는 2단계에 걸쳐서 빈들을 읽어온다.
ComponentScan
EnableAutoConfiguration
ComponentScan
은 @Component 애노테이션을 비롯하여 @Service, @Controller, @RestController, @Repository 애노테이션이 달린 클래스들을 빈으로 등록한다.
EnableAutoConfiguration
은 spring.factories
에 존재하는 의존성 목록들을 읽어서 빈으로 등록한다.
스프링 부트는 개발자가 재정의하거나 설정해야할 부분들을 줄여준다.
내장 웹 서버
스프링 부트의 주요한 목적 중 하나는 독립적으로 실행가능한 애플리케이션
을 만들어주는 것이다.
최근 마이크로서비스가 부상하면서 스프링 또한 시대에 발맞춰 독립적으로 실행 가능한 애플리케이션을 만들 수 있는 기능을 스프링 부트에 추가하였고 이는 스프링 부트가 갖는 주요 목적 중 하나가 되었다.
이를 위해 자동적으로 내장 웹서버가 들어가있다. (Tomcat)
이러한 사용 또한 사용자가 특별히 설정 없이 자동 설정
으로 설정되어져 있고 실행만 하면 바로 웹서버를 실행할 수 있게 되었다.
Reference
인프런 백기선님의 스프링 부트 개념과 활용