Spring Boot 和 Spring Cloud 已成為當前最流行的微服務框架。本文通過樣例演示如何搭建並運行一個簡單的 Spring Boot 項目。在開發之前,首先確認我們的電腦上已經有以下環境:
- JDK8
- Maven3.0+
- Intellij IDEA
一、創建項目
創建項目一共有兩種方式,下面分別進行介紹。
1,在線創建項目
(1)在線創建是 Spring Boot 官方提供的一種創建方式,在瀏覽器中訪問如下網址:
https://start.spring.io/
(2)在打開的頁面中我們可以選擇項目的構建工具是 Maven 還是 Gradle、語言是 Java 還是其它、要使用的 Spring Boot 版本號、項目的組織 Id(包名)、模塊名稱以及項目的依賴。
因為我要創建一個 SpringBoot 項目,所以項目依賴這塊我們輸入 Web 回車后進行添加。
2,使用 Intellij IDEA 創建

接着輸入項目的基本信息,包括組織 Id、模塊名稱、項目構建類型、最終生成包的類型、Java 的版本、開發語言、項目版本號、項目描述以及項目的包。
(2)接着選擇項目所需要的依賴,之后 Intellij IDEA 會自動把選中的依賴添加到項目的 pom.xml 文件中。
因為我要創建一個 SpringBoot 項目,所以這里我們添加了個 Web 依賴。

二、運行項目
有三種不同的方式啟動項目,下面分別進行介紹。
1,使用 Maven 命令啟動
(1)打開終端進入項目文件夾,執行如下 mvn 命令啟動項目:
mvn spring-boot:run
(2)啟動完畢后終端會顯示成功信息。
(3)使用瀏覽器訪問 http://localhost:8080/ 則可顯示項目主頁。

2,直接運行 main 方法


3,打包啟動
Spring Boot 應用也可以直接打成 jar 包運行。在生產環境中,常常通過這樣的方式來運行一個 Spring Boot 應用。
(1)打開終端進入項目文件夾,執行如下 mvn 命令進行打包。
mvn package
(2)如果使用的是 Intellij IDEA,我們還可以點擊界面右側的 Maven -> Lifecycle -> package 進行打包。
(3)上面打包方式的前提是項目使用了 spring-boot-starter-parent 作為 parent,不過在大部分項目中,項目的 parent 可能並不是 spring-boot-starter-parent,而是公司內部定義好的一個配置,此時 spring-boot-maven-plugin 插件並不能直接使用,我們只要做如下額外的配置即可。配置完畢后就和之前一樣,可以通 Maven 命令或者 IntelliJ IDEA 中的 Maven 插件進行打包。
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
(4)打包完成后,在項目的 target 目錄下會生成一個 jar 文件。
(5)通過 java -jar 命令可以直接啟動這個 jar 文件。
java -jar demo-0.0.1-SNAPSHOT.jar
(6)我們還可以在命令后面加個 &,表示后台運行。
java -jar demo-0.0.1-SNAPSHOT.jar &
(7)由於在生產環境中,Linux 大多數情況下都是遠程服務器,然后使用遠程工具連接 Linux。如果使用上面命令啟動 JAR,一旦窗口關閉,JAR 也就停止運行了,因此一般通過如下命令啟動 JAR:
注意:nohup 表示當窗口關閉時服務不掛起,繼續在后台運行。
nohup java -jar demo-0.0.1-SNAPSHOT.jar &
三、一個簡單的 RESTful 服務樣例
(1)首先我們在項目中新建一個名為 HelloController 的 Java 類
(2)該類里面的內容如下:
- @RestController 注解:告訴 Spring 以字符串的形式渲染結果,並直接返回給調用者。該注解相當於 @ResponseBody + @Controller 合在一起的作用。
- @RequestMapping 注解:提供路由信息,它告訴 Spring 任何來自“/hello”路徑的 HTTP 請求(Get)都應該被映射到 hello 方法。
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.GetMapping; @RestController public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; } }
(3)運行啟動程序后,訪問 http://localhost:8080/hello 就可以訪問這個 controller 的功能了。