
스프링 부트 라이브러리 기능 제공
스프링 부트 쓰기 전
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-webspring-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: 스프링 배치를 위한 스타터