选择maven作为Spring Boot的构建工具,,Initializr会生成一个pom.xml文件;如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.SpringBoot.study</groupId>
<artifactId>sts</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sts</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version> //从 spring-boot-starterparent继承版本号
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</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-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
除了构建插件,pom.xml里的Maven构建说明中还将spring-boot-starter-parent作为上一级,这样一来就能利用Maven的依赖管理功能,继承很多常用库的依赖版本,意义指定你需要的库版本。请注意,这个pom.xml里的<dependency>都没有指定版本,根据父类的版本进行依赖加载,并且Artifact ID都有spring-boot-starter-前缀。。这些都是Spring Boot起步依赖,它们都有助于 Spring Boot应用程序的构建。
如果我们不使用spring boot我们就不知道我们项目中使用到一些技术时不知道该添加那些版本,比如说当我们使用到springMVC时,将自己所用的添加到项目中,很多时候和其他技术都是不兼容的。这样我们开发一个web应用就需要话费很多时间去了解很多东西。
Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项 目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或某类功能。
通过传递依赖,添加这四个依赖就等价于加了一大把独立的库。这些传递依赖涵盖了SpringMVC、Spring Data JPA、Thymeleaf等内容,它们声明的依赖也会被传递依赖进来。这四个起步依赖只是spring Boot起步依赖的一部分,当我们需要其他的依赖时,只需要pom中引入起步依赖,不需要再担心他们的版本。