다양한 스프링 프로젝트들의 모음이다.
다양한 스프링 프로젝트는 스프링프레임워크를 기반으로 사용한다.
스프링 이전에도 EJB라는 프레임워크가 있었다.
EJB의 목표:
비즈니스로직과 앤터프라이즈 기술의 분리를 통한
하지만
단점 :
이 문제를 해결하기 위해 등장한 것이 스프링이다.
스프링의 장점은
비즈니스기술과 어플리케이션 기술의 분리를 통해
ejb의 문제점 해결
다양한 스프링 프로젝트들과 외부라이브러리인 오픈소스의 등장으로
스프링 생태계가 커졌다.
스프링부트를 사용하면 스프링기반의 어플리케이션을 쉽게 만들 수 있다.
스프링개발의 복잡한 설정과정을 스프링부트가 대신해준다.
스프링부트도 스프링의 프로젝트중 하나기 때문에 스프링프레임워크기반으로 작동한다.
위와 같은 스프링의 문제점을 해결하기 위해 스프링부트가 등장했다.
기존 스프링 개발의 경우 웹배포과정
위 과정은 복잡하고 귀찮다.
그래서 스프링부트는
기존 스프링 의존,버전관리
위 과정은 번거롭고 귀찮다.
버전 자동관리
스프링부트는
io.spring.dependency-management
를 사용하여 라이브러리의 버전을 자동으로 관리해준다.
기본라이브러리의 묶음제공
각각 선택해야했던 라이브러리들의 묶음으로 라이브러리 제공
ex) implementation 'org.springframework.boot:spring-boot-starter-web'
자동구성
일반적으로 자주 사용되는 빈들을 자동으로 등록
과정 :
@springBootApplication어노테이션 안에
자동구성을 활성화 시켜주는 @EnableAutoConfiguration이 있다.
@EnableAutoConfiguration안에는
@import(AutoconfigurationImportSelector.class)가 있다.
importSelector : 설정정보대상을 동적으로 선택 ->
autoconfigurationImportSelelctor : 자동 설정에 대한 동적 import실행
위 과정을 통해 해당 파일의 설정정보가 스프링컨테이너에 빈으로 자동 등록된다.