스프링 부트 라이브러리 기능 제공
스프링 부트 쓰기 전
build.gradle
dependencies {
//1. 라이브러리 직접 지정
//스프링 웹 MVC
implementation 'org.springframework:spring-webmvc:6.0.4'
//내장 톰캣
implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.5'
//JSON 처리
implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1'
//스프링 부트 관련
implementation 'org.springframework.boot:spring-boot:3.0.2'
implementation 'org.springframework.boot:spring-boot-autoconfigure:3.0.2'
//LOG 관련
implementation 'ch.qos.logback:logback-classic:1.4.5'
implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.19.0'
implementation 'org.slf4j:jul-to-slf4j:2.0.6'
//YML 관련
implementation 'org.yaml:snakeyaml:1.33'
}
스프링 부트는 개발자 대신에 수 많은 라이브러리의 버전을 직접 관리해준다.
build.gradle - plugins 수정
plugins {
id 'org.springframework.boot' version '3.0.2'
id 'io.spring.dependency-management' version '1.1.0' //추가
id 'java'
}
dependencies {
//2. 스프링 부트 라이브러리 버전 관리
//스프링 웹, MVC
implementation 'org.springframework:spring-webmvc'
//내장 톰캣
implementation 'org.apache.tomcat.embed:tomcat-embed-core'
//JSON 처리
implementation 'com.fasterxml.jackson.core:jackson-databind'
//스프링 부트 관련
implementation 'org.springframework.boot:spring-boot'
implementation 'org.springframework.boot:spring-boot-autoconfigure'
//LOG 관련
implementation 'ch.qos.logback:logback-classic'
implementation 'org.apache.logging.log4j:log4j-to-slf4j'
implementation 'org.slf4j:jul-to-slf4j'
//YML 관련
implementation 'org.yaml:snakeyaml'
}
dependency-management 버전 관리
io.spring.dependency-management
플러그인을 사용하면 spring-boot-dependencies
에 있는 다음 bom 정보를 참고한다.
build.gradle
문서안에 보면 bom 이라는 항목이 있다.BOM(Bill of materials)
자재 명세서(Bill of materials)란 제품구성하는 모든 부품들에 대한 목록이다.
부품이 복잡한 요소들로 구성된 조립품인 경우는 계층적인 구조로 작성될 수 있다.
스프링 부트가 제공하는 버전 관리는 스프링 자신을 포함해서 수 많은 외부 라이브러리의 버전을 최적화
해서 관리해준다.
스프링 부트는 이런 문제를 해결하기 위해 프로젝트를 시작하는데 필요한 관련 라이브러리를 모아둔 스프링 부트 스타터를 제공한다.
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
spring-boot-starter-web
이 라이브러리 하나로 지금까지 우리가 직접 넣어주었던 모든 라이브러리가 포함된다.spring-boot-starter-web
spring-boot-starter-data-jpa
스프링 부트 스타터 - 자주 사용하는 것 위주
spring-boot-starter
: 핵심 스타터, 자동 구성, 로깅, YAMLspring-boot-starter-jdbc
: JDBC, HikariCP 커넥션풀spring-boot-starter-data-jpa
: 스프링 데이터 JPA, 하이버네이트spring-boot-starter-data-mongodb
: 스프링 데이터 몽고spring-boot-starter-data-redis
: 스프링 데이터 Redis, Lettuce 클라이언트spring-boot-starter-thymeleaf
: 타임리프 뷰와 웹 MVCspring-boot-starter-web
: 웹 구축을 위한 스타터, RESTful, 스프링 MVC, 내장 톰캣spring-boot-starter-validation
: 자바 빈 검증기(하이버네이트 Validator)spring-boot-starter-batch
: 스프링 배치를 위한 스타터