一、簡介
- 爲完成不一樣需求的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>