一、简介
- 为完成不一样需求的Spring应用构建,SpringBoot提供了多种不一样的依赖管理模板,每种模板均为一系列已完成的依赖的管理.例如如须要构建web项目,咱们只需添加spring-boot-starter-web的依赖便可,它会将你所需的其余依赖导入到你的工程中.官方称之为"物料清单"(Bills of Materials),也所以在使用时咱们须要构建工具的支持,如Maven或者Gradle等.
- Spring Boot提供了多种不一样的Starters来知足咱们对不一样"物料清单的需求",这些Starters均为依赖并命名格式为spring-boot-starter-*.经过使用这些starters,咱们能够快速完成项目构建而一个个的进行依赖的导入.同时咱们在使用时也没必要控制依赖的版本,Spring Boot提供了默认的版本进行管理,在咱们升级SpringBoot的版本时,这些依赖的版本也会进行更新.
二、依赖管理
- 继承Spring Boot的提供的父工程,须要在pom.xml中配置,xml配置以下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
- 这个父工程提供了多项的默认设置
- 默认编译等级为Java1.6
- 默认编码为UTF-8
- 依赖管理模块(dependencyManagement),能够不配置version.
- maven插件及resource filter的配置
- 转为application.properties及application.yaml提供的resource filtering配置
- 须要注意的一点是Spring Boot将Maven占位符设置为@…@,而不是常见的${…},若是须要替换能够经过设置resource.delimiter来完成
- 经过scope=import的方式引入 在不少时候咱们须要继承自有的父工程或因为其余设置没法使用Spring Boot提供的父工程.此时能够经过scope=import的方式进行引入,以下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.8.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
此处经过scope=import的方式导入了依赖的管理配置.但此时咱们没法经过在properties中覆盖对应的属性来完成version的控制(由于没有继承父工程).以此应对的方式是经过在dependencyManagement中进行配置,而且要求在spring-boot-dependencies以前添加便可.同时,对应spring-boot-maven-plugin插件也须要显式配置才能够.web
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>