Spring Boot 2.2.2.RELEASE 版本中文參考文檔【3.1】

使用Spring Boot

本節將詳細介紹如何使用Spring Boot。它涵蓋了諸如構建系統,自動配置以及如何運行應用程序之類的主題。咱們還將介紹一些Spring Boot最佳實踐。儘管Spring Boot並無什麼特別的地方(它只是另外一個可使用的庫),可是有一些建議可使您的開發過程更輕鬆一些。html

若是您是從Spring Boot開始的,那麼在進入本節以前,您可能應該閱讀入門指南git

3.1 構建系統

強烈建議您選擇一個支持依賴關係管理而且可使用發佈到「Maven Central」存儲庫的artifacts的構建系統。咱們建議您選擇Maven或Gradle。可使Spring Boot與其餘構建系統(例如Ant)一塊兒使用,可是它們並無獲得很好的支持。github

3.1.1 依賴管理

每一個Spring Boot版本都提供了它所支持的依賴關係的精選列表。實際上,您不須要爲構建配置中的全部這些依賴項提供版本,由於Spring Boot會爲您管理該版本。當您升級Spring Boot自己時,這些依賴項也會以一致的方式升級。spring

Tips: 您仍然能夠指定版本,並在須要時覆蓋Spring Boot的建議。

精選列表包含可與Spring Boot一塊兒使用的全部spring模塊以及完善的第三方庫列表。該列表做爲可與MavenGradle一塊兒使用的標準物料清單(spring-boot-dependencies)提供。數據庫

Warning: Spring Boot的每一個發行版都與Spring Framework的基本版本相關聯。 強烈建議您不要指定其版本。

3.1.2 Maven

Maven用戶能夠從spring-boot-starter-parent項目繼承來得到合理的默認值。 父項目提供如下功能: Java 1.8是默認的編譯級別。 UTF-8源編碼。 從spring-boot-dependencies pom繼承的依賴管理部分,它管理公共依賴項的版本。 當在本身的pom中使用這些依賴關係時,能夠爲這些依賴關係省略\<version>標記。 具備從新打包執行ID的從新打包目標的執行。[An execution of the repackage goal with a repackage execution id.] 合理的資源過濾。 合理的插件配置(exec pluginGit commit IDshade)。 * 對application.properties和application.yml進行合理的資源過濾,包括profile-specific的文件(例如application-dev.properties和application-dev.yml)apache

請注意,因爲application.properties和application.yml文件接受Spring樣式的佔位符(${…}),所以Maven過濾已更改成使用@ .. @佔位符。(您能夠經過設置一個名爲resource.delimiter的Maven屬性來覆蓋它。)安全

繼承父Starter

要將項目配置爲從spring-boot-starter-parent繼承,請設置pom文件的parent,以下所示:微信

1 <!-- Inherit defaults from Spring Boot -->
2 <parent>
3     <groupId>org.springframework.boot</groupId>
4     <artifactId>spring-boot-starter-parent</artifactId>
5     <version>2.2.2.RELEASE</version>
6 </parent>
Note: 您只須要爲此依賴項指定Spring Boot版本號。若是導入其餘啓動器,則能夠安全地省略版本號。

使用該設置,您還能夠經過覆蓋本身項目中的屬性來覆蓋各個依賴項。例如,要升級到另外一個Spring Data發佈系列,能夠將如下內容添加到pom.xml中:app

1 <!-- Inherit defaults from Spring Boot -->
2 <properties>
3     <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
4 </properties>
Tip: 查看 spring-boot-dependencies pom以獲取受支持屬性的列表。

在沒有父POM的狀況下使用Spring Boot

並不是每一個人都喜歡從spring-boot-starter-parent父POM繼承。您可能須要使用本身的公司標準父級,或者可能但願顯式聲明全部Maven配置。maven

若是您不想使用spring-boot-starter-parent,仍然能夠經過使用scope = import依賴項來保留依賴項管理(而不是插件管理)的好處,以下所示:

 1 <dependencyManagement>
 2     <dependencies>
 3         <dependency>
 4             <!-- Import dependency management from Spring Boot -->
 5             <groupId>org.springframework.boot</groupId>
 6             <artifactId>spring-boot-dependencies</artifactId>
 7             <version>2.2.2.RELEASE</version>
 8             <type>pom</type>
 9             <scope>import</scope>
10         </dependency>
11     </dependencies>
12 </dependencyManagement>

 

如上所述,前面的示例設置不容許您使用屬性來覆蓋各個依賴項。爲了得到相同的結果,須要在spring-boot-dependencies條目以前的項目的dependencyManagement中添加一個條目。 例如,要升級到另外一個Spring Data發佈系列,能夠將如下元素添加到pom.xml中:

 1 <dependencyManagement>
 2     <dependencies>
 3         <!-- Override Spring Data release train provided by Spring Boot -->
 4         <dependency>
 5             <groupId>org.springframework.data</groupId>
 6             <artifactId>spring-data-releasetrain</artifactId>
 7             <version>Fowler-SR2</version>
 8             <type>pom</type>
 9             <scope>import</scope>
10         </dependency>
11         <dependency>
12             <groupId>org.springframework.boot</groupId>
13             <artifactId>spring-boot-dependencies</artifactId>
14             <version>2.2.2.RELEASE</version>
15             <type>pom</type>
16             <scope>import</scope>
17         </dependency>
18     </dependencies>
19 </dependencyManagement>
Note: 在前面的示例中,咱們指定了BOM,可是能夠以相同方式覆蓋任何依賴項類型。

使用Spring Boot Maven插件

Spring Boot包含一個能夠將項目打包爲可執行jar的Maven插件。若是要使用插件,請將其添加到您的\<plugins>部分,如如下示例所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Note: 若是您使用了spring-boot-starter-parent,則只需添加該插件。除非您要更改父級中定義的設置,不然無需對其進行配置。

3.1.3 Gradle

3.1.4 Ant

3.1.5 啓動器[Starters]

Starters是一系列便捷的,能夠包含在你應用中的依賴項描述符[dependency descriptors]。您能夠一站式獲取所需的全部Spring和相關技術,從而省去遍歷示例代碼和遍歷依賴描述符的負擔。例如,若是要開始使用Spring和JPA進行數據庫訪問,在項目中包括spring-boot-starter-data-jpa依賴項便可。

入門程序包含許多啓動項目並快速運行所需的依賴項,而且支持依賴傳遞。

關於名字叫什麼

官方startter都遵循相似的命名方式:spring-boot-starter-*,其中 * 是特定類型的應用程序[application]。這種命名結構在您須要尋找starter時提供了便利。許多IDE中的Maven集成使您能夠按名稱搜索依賴項。例如,在安裝了適當的Eclipse或STS插件的狀況下,您能夠在POM編輯器中按ctrl-space並鍵入「spring-boot-starter」以獲取完整列表。

如「建立本身的Stater」部分中所述,第三方starter的命名不建議以spring-boot開頭,由於它是爲Spring Boot官方artifactId保留的。而是,第三方啓動程序一般以項目名稱開頭。例如,一個名爲thirdpartyproject的第三方啓動程序項目一般會被命名爲thirdpartyproject-spring-boot-starter。

Spring Boot在org.springframework.boot組下提供瞭如下應用程序的starters:

Table 1. Spring Boot application starters

Table 2. Spring Boot production starters

Table 3. Spring Boot technical starters

Spring Boot提供的starters pom都可在Github找到,參考地址:

Tip: 有關社區貢獻的其餘staters的列表,請參閱GitHub上spring-boot-starters模塊中的 README文件

 

Spring Boot 2.2.2.RELEASE版本中文文檔持續更新中~若有須要獲取參考文檔文件,關注公衆號JavaSo,回覆「參考文檔」便可。


關注微信公衆號,一塊兒交流下咯~

相關文章
相關標籤/搜索