https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project
git repository 에 저장된 spring-boot open source 를 보고 내부에 저장된 모듈이 각각 어떠한 역할을 수행하는지 알아보고자 조사를 했다.
Root 에 작성된 README.adoc 를 보며 정리했다
main module
Including SpringApplication : Application Context 생성
Embedded web applications with a choice of container(mainly Tomcat) 외 외부 구성 지원
classpath 에 존재하는 파일들을 확인하고 자동으로 필요한 설정(bean, DI) 을 완성해준다.
사용자가 아무런 설정을 하지 않은 경우에도 spring-boot 가 추론을 통해 bean을 생성해준다.
@EnableAutoConfiguration 을 통해서 수행 (@SpringBootApplication 에 포함)
dependency descriptor
요구되는 dependency 를 생성해주고, 버전관리를 해준다.
one-stop shop for all the Spring and related technology you need (README 발췌)
starters-parent 가 호환성관리
최소한의 코드 작성으로 spring application 이 가동될 수 있도록 해주는 모듈
Groovy 로 작성된 파일을 컴파일하고 실행한다.
시작 방법
$ curl -s "https://get.sdkman.io" | bash (sdkman 으로 spring boot cli 의 버전관리 가능)
$ sdk install springboot
$ spring init
metric slf4j
의존성 추가 시 application health 를 체크한 결과(metric)를 보여주는 endpoint 제공
/actuator 로 endpoints 목록 확인 가능
springboot gradle plugin 을 이용해 build, jar 파일 생성 후 실행 시킨 모습
개발 과정 중에 유용한 기능을 제공
application.properties 에 간단한 문장을 추가하는 것으로 설정 가능