Skip to Content
Suffering builds character
아카이브20.spring Hateoas스프링부트3.스프링 부트 핵심 특징6.스프링부트 starter parent 컴포넌트

6.스프링부트 starter parent 컴포넌트

다음과 같이 Maven 기반으로 생성된 스프링 부트 애플리케이션이 있다고 가정할 때,

일반적으로 스프링 부트 기반 애플리케이션에서 <parent>...</parent> 엘리먼트는 spring-boot-starter-parent 컴포넌트를 설정하기 위한 옵션으로 동작함

pom.xml
<project ...> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.6</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>

1. Spring-boot-starter-parent

1-1. <parent>...</parent>

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.6</version> <relativePath/> <!-- lookup parent from repository, Maven 저장소에서 parent를 가져오는 옵션 --> </parent>

<parent></parent>는 이 프로젝트가 스프링 부트 프로젝트의 하위 프로젝트임을 명시하기 위해 spring-boot-starter-parent를 지정하는 코드라고 볼 수 있음

이렇게 지정함으로서 웹 애플리케이션 개발에 필요한 플러그인 및 의존 관계 관리를 스프링 부트에게 위임할 수 있음

gradle에서는 아래와 같은 설정이 이에 해당한다고 볼 수 있음

build.gradle
plugins { id 'java' id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.1.4' }

1-2. spring-boot-starter-parent

spring-boot-starter-parent는 모든 스프링 부트 스타터 의존 관계를 구성하는 부분에 있어서 부모 역할을 수행하는 스타터로, spring-boot-starter-parent를 명시하면, 해당 프로젝트가 spring-boot-starter-parent의 하위 프로젝트로서 몇 가지 부분을 확장한다는 것을 의미함

이러한 spring-boot-starter-parent 모듈은 기본적인 자바 버전을 지정하고, 해당 프로젝트에서 사용하는 몇 가지 기본 설정 옵션을 제공함

pom.xml
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.6</version> <relativePath/> </parent>

→ 스프링 부트의 기본적인 버전을 2.7.6버전이라고 명시

아래와 같이 개별적인 의존성들은 별도의 버전이 명시되어 있지 않지만, <parent> </parent> 내부에 명시된 2.7.6 버전을 기반으로 각각의 버전들이 자동으로 구성됨

pom.xml
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
Last updated on