Spring Boot教程(一)(快樂入門)(上)

weixin_33866037發表於2017-06-18

                                                                                                                                原創者:文思

       Spring Boot就是Spring,它做了那些沒有它你也會去做的Spring Bean配置。它使用“習慣優於配置”(專案中存在大量的配置,此外還內建了一個習慣性的配置,讓你無需手動進行配置)的理念讓你的專案快速執行起來。使用Spring Boot很容易建立一個獨立執行(執行jar,內嵌Servlet容器)、準生產級別的基於Spring框架的專案。

SpringBoot精要:

1自動配置auto-configuration: 針對很多Spring應用程式常見的應用功能,Spring Boot能自動提供相關預設配置,進一步請自己理解

2起步依賴starters:告訴Spring Boot需要什麼功能,它就能引入需要的starter庫,進一步請自己理解

3命令列介面cli: 這是Spring Boot的可選特性,藉此你只需寫程式碼就能完成完整的應用程式,無需傳統專案構建,或許不常用 

4Actuator:讓你能夠深入執行中的Spring Boot應用程式,對應用系統的自省和監控的整合功能。

以上是Spring Boot有四大神器。

環境要求:

目前Spring Boot正式版為1.5.1.RELEASE預設情況下,Spring Boot

1.5.1.RELEASE需要Java 7和Spring Framework

4.3.6.RELEASE或更高版本。推薦Java 8

極速入門:

傳統spring mvc開發一個web專案:

Maven構建檔案及spring,spring

mvc,servlet api,jdbc依賴類

Web.xml配置

Spring.xml springMvc.xml配置

Tomcat

Contoller類,只有contoller類和業務具體相關,其它都是配置及開發環境搭建、準備。

使用spring boot:

推薦Spring Initializr,它從本質上來說就是一個Web應用程式,它能為你生成Spring Boot專案

訪問:http://start.spring.io

6051902-023c58ee0e38b071.png


下載專案壓縮包,匯入到你的工程

6051902-336bb1d135f0d905.png
6051902-82f0c602e591f209.png

專案裡面基本沒有程式碼,除了幾個空目錄外,還包含如下幾樣東西。

·pom.xml:Maven構建說明檔案。

·Chapter1Application.java:一個帶有main()方法的類,用於啟動應用程式(關鍵)。

·Chapter1ApplicationTests.java:一個空的Junit測試類,它載入了一個使用Spring Boot字典配置功能的Spring應用程式上下文。

application.properties:一個空的properties檔案,你可以根據需要新增配置屬性。

解析pom.xml

6051902-45fdd1f9b0da28a7.png

這塊配置就是Spring Boot父級依賴,有了這個,當前的專案就是Spring Boot專案了,spring-boot-starter-parent是一個特殊的starter,它用來提供相關的Maven預設依賴,使用它之後,常用的包依賴可以省去version標籤。檢視C:\Users\goodluck\.m2\repository\org\springframework\boot\spring-boot-parent\1.5.4.RELEASE\spring-boot-parent-1.5.4.RELEASE.pom:

6051902-cf34676751ffb42b.png

relativePath是相對路徑的意思,再開啟引用檔案spring-boot-dependencies-1.5.1.RELEASE.pom:

6051902-7151435dd8cef0c3.png

如果你不想使用某個依賴預設的版本,您還可以通過覆蓋自己的專案中的屬性來覆蓋各個依賴項,例如,要升級到另一個Spring

Data版本系列,要升級mysql版本,不想使用servletr-api3.1版本,都可以在pom.xml中更換,如:

6051902-6d7f6bb2d4e95668.png

並不是每個人都喜歡繼承自spring-boot-starter-parent POM。您可能有您需要使用的自己的公司標準parent,或者您可能更喜歡顯式宣告所有的Maven配置,再或者有10個、20個甚至更多模組繼承自同一個模組。要知道,Maven的繼承和Java的繼承一樣,是無法實現多重繼承的,如果那麼按照我們之前的做法,這個父模組的dependencyManagement會包含大量的依賴。如果你想把這些依賴分類以更清晰的管理,那就不可能了,import scope依賴能解決這個問題如果不想使用spring-boot-starter-parent,可以通過使用scope = import依賴關係來保持依賴關係管理。步驟:

1把dependencyManagement放到單獨的專門用來管理依賴的pom中,比如叫base-parent1

6051902-d8cdb8443a7fcd59.png

2通過非繼承的方式來引入這段依賴管理配置,需要使用依賴的模組中通過import scope依賴,就可以引入dependencyManagement

6051902-ada01dd09d9dab1c.png

以我們的專案為例,在我們的專案demo中不使用starter-parent的話,在pom.xml中:

6051902-f950c6efa8b322c5.png

該設定不允許您使用如上所述的屬性(properties)覆蓋各個依賴項,要實現相同的結果,您需要在spring-boot-dependencies項之前的專案的dependencyManagement中新增一個配置,例如,要升級到另一個Spring Data版本系列,您可以將以下內容新增到pom.xml中:

6051902-d1a8c323d1efb70c.png

這樣配置的話,自己的專案裡面就不需要繼承SpringBoot的module了,而可以繼承自己專案的module了。

---------------------------------------------------------------------------------------------------------------------------------------------------

起步依賴 spring-boot-starter-xx

Spring Boot提供了很多”開箱即用“的依賴模組,都是以spring-boot-starter-xx作為命名的。

比如我們之前要實現web功能,引入了spring-boot-starter-web這個起步依賴。我們來看看spring-boot-starter-web到底依賴了哪些,如圖:

6051902-fa710f4d08e02caa.png

好多好多,看著是不是很熟悉,所以Spring Boot通過提供眾多起步依賴降低專案依賴的複雜度。起步依賴本質上是一個Maven專案物件模型(Project Object Model,POM),定義了對其他庫的傳遞依賴。起步依賴的命名都暗示了它們提供的某種或者某類功能。

6051902-6bb3a6bdcaeec477.png

上面的配置就是Spring Boot Maven外掛,Spring Boot Maven可以把專案打包成一個可執行的超級JAR(uber-JAR),包括把應用程式的所有依賴打入JAR檔案內,併為JAR新增一個描述檔案,其中的內容能讓你用java -jar來執行應用程式,在main方法中即可執行。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

應用入口類

6051902-8527354f67fbbc6a.png

@RestController註解等價於@Controller+@ResponseBody的結合,使用這個註解的類裡面的方法都以json格式輸出

有三種啟動方式:

run as -> java applicion或者run as -> spring boot app 或者在Boot Dashbord中debug

使用命令 mvn spring-boot:run”

執行“mvn package”進行打包時,會打包成一個可以直接執行的 JAR 檔案,使用“java -jar”命令

開啟瀏覽器訪問:

6051902-3360f023b927a638.png

上集講解完畢,請關注下集原始碼剖析。

相關文章