SW/Spring Boot

Spring Boot : 스프링 부트 Starter Parent 설명, 예제, 방법

얇은생각 2023. 3. 13. 07:30
반응형

Spring Boot : 스프링 부트 Starter Parent 설명, 예제, 방법

 

 

 

스프링 부트 스타터 부모

스프링-부트-스타터-부모는 프로젝트 시작자입니다. 응용프로그램에 대한 기본 구성을 제공합니다. 모든 종속성에서 내부적으로 사용됩니다. 모든 Spring Boot 프로젝트는 pom.xml 파일의 상위 항목으로 spring-boot-starter-parent를 사용합니다.

<parent>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-starter-parent</artifactId>  
<version>1.4.0.RELEASE</version>  
</parent>

 

 

상위 품목을 사용하면 여러 하위 프로젝트 및 모듈에 대해 다음과 같은 사항을 관리할 수 있습니다.

 

구성: Java 버전 및 기타 관련 속성의 일관성을 유지할 수 있습니다.

종속성 관리: 충돌을 피하기 위해 종속성 버전을 제어합니다.

소스 인코딩입니다.

기본 Java 버전입니다.

리소스 필터링입니다.

또한 기본 플러그인 구성도 제어합니다.

 

spring-boot-starter-parent spring-boot-dependency에서 종속성 관리를 상속합니다. 스프링 부트 버전 번호만 지정하면 됩니다. 추가 스타터의 요구사항이 있다면, 우리는 안전하게 버전 번호를 생략할 수 있습니다.

 

 

 

스프링 부트 스타터 부모 내부

스프링 부팅 스타터 상위에서는 스프링 부팅 종속성을 상위 폼으로 정의합니다. 스프링 부트 종속성에서 종속성 관리를 상속합니다.

<parent>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-dependencies</artifactId>  
<version>1.6.0.RELEASE</version>  
<relativePath>../../spring-boot-dependencies</relativePath>  
</parent>

 

 

 

 

기본 상위 폼

<properties>  
<java.version>1.8</java.version>  
<resource.delimiter>@</resource.delimiter>   
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
<maven.compiler.source>${java.version}</maven.compiler.source>  
<maven.compiler.target>${java.version}</maven.compiler.target>  
</properties>

 

 

속성 섹션은 응용 프로그램 기본값을 정의합니다. 기본 Java 버전은 1.8입니다. 속성 <java.version>1을 지정하여 Java 버전을 재정의할 수도 있습니다.프로젝트 폼에 8개 버전이 있습니다. 상위 폼에는 인코딩 및 소스와 관련된 몇 가지 다른 설정도 포함되어 있습니다. Spring Boot 프레임워크는 application.properties 파일에 정의되지 않은 경우 이러한 기본값을 사용합니다.

 

 

 

플러그인 관리

spring-boot-starter-parent maven-failsafe-plugin, maven-jar-plugin maven-sure fire-plugin을 포함한 호스트의 기본 구성을 지정합니다.

<plugin>  
<groupId>org.apache.maven.plugins</groupId>  
<artifactId>maven-failsafe-plugin</artifactId>  
<executions>  
<execution>  
<goals>  
<goal>integration-test</goal>  
<goal>verify</goal>  
</goals>  
</execution>  
</executions>  
</plugin>  
<plugin>  
<groupId>org.apache.maven.plugins</groupId>  
<artifactId>maven-jar-plugin</artifactId>  
<configuration>  
<archive>  
<manifest>  
<mainClass>${start-class}</mainClass> <addDefaultImplementationEntries>true</addDefaultImplementationEntries>  
</manifest>  
</archive>  
</configuration>  
</plugin>  
<plugin>  
<groupId>org.apache.maven.plugins</groupId>  
<artifactId>maven-surefire-plugin</artifactId>  
<configuration>  
<includes>  
<include>**/*Tests.java</include> 
<include>**/*Test.java</include>  
</includes>  
<excludes>  
<exclude>**/Abstract*.java</exclude>  
</excludes>  
</configuration>  
</plugin>

 

 

 

스프링 부트 종속성

spring-boot-starter-parent 종속성은 spring-boot-dependency에서 상속되며 이러한 특성도 모두 공유됩니다. 따라서 Spring Boot은 종속성 관리의 일부로 종속성 목록을 관리합니다.

<properties>  
<activemq.version>5.13.4</activemq.version>  
...  
<ehcache.version>2.10.2.2.21</ehcache.version>  
<ehcache3.version>3.1.1</ehcache3.version>  
...  
<h2.version>1.4.192</h2.version>  
<hamcrest.version>1.3</hamcrest.version>  
<hazelcast.version>3.6.4</hazelcast.version>  
<hibernate.version>5.0.9.Final</hibernate.version>  
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version>  
<hikaricp.version>2.4.7</hikaricp.version>  
<hikaricp-java6.version>2.3.13</hikaricp-java6.version>  
<hornetq.version>2.4.7.Final</hornetq.version>  
<hsqldb.version>2.3.3</hsqldb.version>  
<htmlunit.version>2.21</htmlunit.version>  
<httpasyncclient.version>4.1.2</httpasyncclient.version>  
<httpclient.version>4.5.2</httpclient.version>  
<httpcore.version>4.4.5</httpcore.version>  
<infinispan.version>8.2.2.Final</infinispan.version>  
<jackson.version>2.8.1</jackson.version>  
....  
<jersey.version>2.23.1</jersey.version>  
<jest.version>2.0.3</jest.version>  
<jetty.version>9.3.11.v20160721</jetty.version>  
<jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version>  
<spring-security.version>4.1.1.RELEASE</spring-security.version>  
<tomcat.version>8.5.4</tomcat.version>  
<undertow.version>1.3.23.Final</undertow.version>  
<velocity.version>1.7</velocity.version>  
<velocity-tools.version>2.0</velocity-tools.version>  
<webjars-hal-browser.version>9f96c74</webjars-hal-browser.version>  
<webjars-locator.version>0.32</webjars-locator.version>  
<wsdl4j.version>1.6.3</wsdl4j.version>  
<xml-apis.version>1.4.01</xml-apis.version>  
</properties>  
<prerequisites>  
<maven>3.2.1</maven>  
</prerequisites>

 

 

 

스프링 부트 스타터 (부모 없음)

경우에 따라 pom.xml 파일에서 spring-boot-starter-parent를 상속하지 않아도 됩니다. 이러한 사용 사례를 처리하기 위해 Spring Boot spring-boot-starter-parent를 상속하지 않고도 종속성 관리를 사용할 수 있는 유연성을 제공합니다.

<dependencyManagement>  
<dependencies>  
<dependency>  
<!-- Import dependency management from Spring Boot -->  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-dependencies</artifactId>  
<version>2.1.1.RELEASE</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
</dependencies>  
</dependencyManagement>

 

 

 

위 코드에서 이것을 위해 <scope> 태그를 사용했음을 알 수 있습니다. 특정 종속성에 대해 다른 버전을 사용하려는 경우 유용합니다.

반응형