1 $ mvn -v 2 Apache Maven 3.5.4(1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00) 3 Maven home:/usr/local/Cellar/maven/3.3.9/libexec 4 Java版本:1.8.0_102,供應商:Oracle Corporation
此示例須要在其本身的文件夾中建立。後續說明假定您已建立了一個合適的文件夾,而且它是您當前的目錄。
用spring boot 來建立一個簡單的「Hello World!」Web應用程序,該應用程序突出了Spring Boot的一些主要功能。咱們使用Maven來構建這個項目,由於大多數IDE都支持它。html
在開始以前,打開終端並運行如下命令以確保安裝了有效的Java和Maven版本:java
1 $ java -version 2 java版「1.8.0_102」 3 Java(TM)SE運行時環境(版本1.8.0_102-b14) 4 Java HotSpot(TM)64位服務器VM(版本25.102-b14,混合模式)
1 $ mvn -v 2 Apache Maven 3.5.4(1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00) 3 Maven home:/usr/local/Cellar/maven/3.3.9/libexec 4 Java版本:1.8.0_102,供應商:Oracle Corporation
此示例須要在其本身的文件夾中建立。後續說明假定您已建立了一個合適的文件夾,而且它是您當前的目錄。
咱們須要從建立Maven pom.xml
文件開始。本pom.xml
是用來構建項目的配方。打開您喜歡的文本編輯器並添加如下內容:web
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>com.example</groupId> 7 <artifactId>myproject</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 10 <parent> 11 <groupId>org.springframework.boot</groupId> 12 <artifactId>spring-boot-starter-parent</artifactId> 13 <version>2.2.0.M2</version> 14 </parent> 15 16 <!-- Additional lines to be added here... --> 17 18 <!-- (you don't need this if you are using a .RELEASE version) --> 19 <repositories> 20 <repository> 21 <id>spring-snapshots</id> 22 <url>https://repo.spring.io/snapshot</url> 23 <snapshots><enabled>true</enabled></snapshots> 24 </repository> 25 <repository> 26 <id>spring-milestones</id> 27 <url>https://repo.spring.io/milestone</url> 28 </repository> 29 </repositories> 30 <pluginRepositories> 31 <pluginRepository> 32 <id>spring-snapshots</id> 33 <url>https://repo.spring.io/snapshot</url> 34 </pluginRepository> 35 <pluginRepository> 36 <id>spring-milestones</id> 37 <url>https://repo.spring.io/milestone</url> 38 </pluginRepository> 39 </pluginRepositories> 40 </project>
上面的清單應該爲您提供有效的構建。您能夠經過運行來測試它mvn package
(如今,您能夠忽略「jar將爲空 - 沒有內容標記爲包含!」警告)。spring
Spring Boot提供了許多「Starters」,能夠將jar添加到類路徑中。咱們的示例應用程序已經spring-boot-starter-parent
在parent
POM部分中使用過。這spring-boot-starter-parent
是一個特殊的啓動器,提供有用的Maven默認值。它還提供了一個dependency-management
部分,以便您能夠省略version
「祝福」依賴項的標記。apache
其餘「Starters」提供了在開發特定類型的應用程序時可能須要的依賴項。因爲咱們正在開發Web應用程序,所以咱們添加了spring-boot-starter-web
依賴項。在此以前,咱們能夠經過運行如下命令來查看當前的內容:數組
1 $ mvn依賴:樹 2 [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
該mvn dependency:tree
命令打印項目依賴項的樹表示。您能夠看到它spring-boot-starter-parent
自己不提供依賴關係。要添加必要的依賴項,請編輯pom.xml
並spring-boot-starter-web
在該parent
部分下方添加 依賴項:瀏覽器
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-web</artifactId> 5 </dependency> 6 </dependencies>
若是mvn dependency:tree
再次運行,您會發現如今有許多其餘依賴項,包括Tomcat Web服務器和Spring Boot自己。服務器
要完成咱們的應用程序,咱們須要建立一個Java文件。默認狀況下,Maven編譯源代碼src/main/java
,所以您須要建立該文件夾結構,而後添加一個名爲src/main/java/Example.java
包含如下代碼的文件:mvc
1 import org.springframework.boot.*; 2 import org.springframework.boot.autoconfigure.*; 3 import org.springframework.web.bind.annotation.*; 4 5 @RestController 6 @EnableAutoConfiguration 7 public class Example { 8 9 @RequestMapping("/") 10 String home() { 11 return "Hello World!"; 12 } 13 14 public static void main(String[] args) { 15 SpringApplication.run(Example.class, args); 16 } 17 18 }
雖然這裏的代碼很少,但仍是有不少代碼。咱們將在接下來的幾節中逐步介紹重要部分。app
@RestController
和@RequestMapping
註解咱們Example
班上的第一個註釋是@RestController
。這被稱爲 構造型註釋。它爲閱讀代碼的人提供了提示,而爲Spring提供了特定角色的提示。在這種狀況下,咱們的類是一個Web @Controller
,所以Spring在處理傳入的Web請求時會考慮它。
該@RequestMapping
註釋提供「路由」的信息。它告訴Spring,任何帶/
路徑的HTTP請求都應該映射到該home
方法。該@RestController
註解告訴Spring使獲得的字符串直接返回給調用者。
@RestController
與
@RequestMapping
註解是Spring MVC的註解。(它們不是Spring Boot特有的。)有關更多詳細信息,請參閱Spring參考文檔中的
MVC部分。
第二個類級註釋是@EnableAutoConfiguration
。這個註釋告訴Spring Boot根據你添加的jar依賴關係「猜想」你想要如何配置Spring。自從spring-boot-starter-web
添加了Tomcat和Spring MVC 以來,自動配置假定您正在開發Web應用程序並相應地設置Spring。
咱們的應用程序的最後一部分是main
方法。這只是遵循應用程序入口點的Java約定的標準方法。咱們的main方法SpringApplication
經過調用委託給Spring Boot的類run
。 SpringApplication
引導咱們的應用程序,啓動Spring,而後啓動自動配置的Tomcat Web服務器。咱們須要Example.class
做爲參數傳遞給run
方法,以告訴SpringApplication
哪一個是主要的Spring組件。該 args
數組也被傳遞以公開任何命令行參數。
此時,您的應用程序應該工做。因爲您使用了 spring-boot-starter-parent
POM,run
所以您能夠使用一個有用的目標來啓動應用程序。mvn spring-boot:run
從根項目目錄中鍵入以啓動應用程序。您應該看到相似於如下內容的輸出:
1 $ mvn spring-boot:run 2 3 。____ _ __ _ _ 4 / \\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 5 (()\ ___ |'_ |'_ | |'_ \ / _` | \ \ \ \ 6 \\ / ___)| | _)| | | | | || (_ | |)))) 7 '| ____ | .__ | _ | | _ | _ | | _ \ __,| / / / / / 8 ========= | _ | ============== | ___ / = / _ / _ / _ / 9 :: Spring Boot ::(v2.2.0.M2) 10 ....... 。。 11 ....... 。。(此處輸出日誌) 12 ....... 。。 13 ........ 2.222秒啓動示例(JVM運行6.514)
若是您打開Web瀏覽器localhost:8080
,您應該看到如下輸出:
1 你好,世界!
要正常退出應用程序,請按ctrl-c
。
咱們經過建立一個徹底自包含的可執行jar文件來完成咱們的示例,咱們能夠在生產中運行它。可執行jar(有時稱爲「fat jar」)是包含已編譯類以及代碼須要運行的全部jar依賴項的歸檔。
要建立可執行jar,咱們須要添加spring-boot-maven-plugin
到咱們的 pom.xml
。爲此,請在該dependencies
部分下方插入如下行:
1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.springframework.boot</groupId> 5 <artifactId>spring-boot-maven-plugin</artifactId> 6 </plugin> 7 </plugins> 8 </build>
spring-boot-starter-parent
POM包括
<executions>
配置以結合
repackage
目標。若是您不使用父POM,則須要本身聲明此配置。有關詳細信息,請參閱
插件文檔。
保存pom.xml
並從命令行運行mvn package
,以下所示:
1 $ mvn包 2 3 [INFO]掃描項目...... 4 [信息] 5 [INFO] ----------------------------------------------- ------------------------- 6 [INFO]構建myproject 0.0.1-SNAPSHOT 7 [INFO] ----------------------------------------------- ------------------------- 8 [INFO] .... 9 [INFO] --- maven-jar-plugin:2.4:jar(default-jar)@ myproject --- 10 [INFO]構建jar:/Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar 11 [信息] 12 [INFO] --- spring-boot-maven-plugin:2.2.0.M2:從新打包(默認)@ myproject --- 13 [INFO] ----------------------------------------------- ------------------------- 14 [信息]創建成功 15 [INFO] ----------------------------------------------- -------------------------
若是你查看target
目錄,你應該看到myproject-0.0.1-SNAPSHOT.jar
。該文件大小應爲10 MB左右。若是你想偷看內部,你能夠使用jar tvf
,以下:
1 $ jar tvf target / myproject-0.0.1-SNAPSHOT.jar
您還應該看到目錄中命名myproject-0.0.1-SNAPSHOT.jar.original
的文件小得多target
。這是Maven在Spring Boot從新打包以前建立的原始jar文件。
要運行該應用程序,請使用如下java -jar
命令:
1 $ java -jar target / myproject-0.0.1-SNAPSHOT.jar 2 3 。____ _ __ _ _ 4 / \\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 5 (()\ ___ |'_ |'_ | |'_ \ / _` | \ \ \ \ 6 \\ / ___)| | _)| | | | | || (_ | |)))) 7 '| ____ | .__ | _ | | _ | _ | | _ \ __,| / / / / / 8 ========= | _ | ============== | ___ / = / _ / _ / _ / 9 :: Spring Boot ::(v2.2.0.M2) 10 ....... 。。 11 ....... 。。(此處輸出日誌) 12 ....... 。。 13 ........ 2.536秒啓動示例(JVM運行2.864)
打開Web瀏覽器localhost:8080
,就能看到如下輸出: