spring-projects/spring-boot Module 조사

SangHyun-Park·2022년 3월 6일
0

https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project

git repository 에 저장된 spring-boot open source 를 보고 내부에 저장된 모듈이 각각 어떠한 역할을 수행하는지 알아보고자 조사를 했다.

Root 에 작성된 README.adoc 를 보며 정리했다

spring-boot

  • main module

  • Including SpringApplication : Application Context 생성

  • Embedded web applications with a choice of container(mainly Tomcat) 외 외부 구성 지원

spring-boot-autoconfigure

  • classpath 에 존재하는 파일들을 확인하고 자동으로 필요한 설정(bean, DI) 을 완성해준다.

  • 사용자가 아무런 설정을 하지 않은 경우에도 spring-boot 가 추론을 통해 bean을 생성해준다.

  • @EnableAutoConfiguration 을 통해서 수행 (@SpringBootApplication 에 포함)

spring-boot-starters

  • dependency descriptor

  • 요구되는 dependency 를 생성해주고, 버전관리를 해준다.

  • one-stop shop for all the Spring and related technology you need (README 발췌)

  • starters-parent 가 호환성관리

spring-boot-cli

  • 최소한의 코드 작성으로 spring application 이 가동될 수 있도록 해주는 모듈

  • Groovy 로 작성된 파일을 컴파일하고 실행한다.

시작 방법

$ curl -s "https://get.sdkman.io" | bash (sdkman 으로 spring boot cli 의 버전관리 가능)
$ sdk install springboot
$ spring init

spring-boot-actuator

  • metric slf4j

  • 의존성 추가 시 application health 를 체크한 결과(metric)를 보여주는 endpoint 제공

  • /actuator 로 endpoints 목록 확인 가능

spring-boot-actuator-autoconfigure

  • class path 에 Micrometer 가 존재한다면 MetricsEndpoint 구현체로 Auto-configuration

spring-boot-test

  • test 할 때 필요한 contents(code, annotation) 을 제공하는 모듈

spring-boot-test-autoconfigure

  • provide auto-configuration for a slice of application that needs to be tested

spring-boot-loader

  • spring-boot 는 내장 WAS(tomcat) 을 제공하기 때문에(spring-boot 모듈이 수행) 기존 war 패키지를 tomcat 위에서 돌리는게 아니라 자체적으로 실행가능한 jar 파일을 생성해준다.

springboot gradle plugin 을 이용해 build, jar 파일 생성 후 실행 시킨 모습

spring-boot-devtools

  • 개발 과정 중에 유용한 기능을 제공

  • application.properties 에 간단한 문장을 추가하는 것으로 설정 가능

profile
https://ppaksang.tistory.com/ 옮겼습니다 !!

0개의 댓글