Spring Boot 體驗
Spring 的各個框架(Spring Framework、Spring Session等)早已在Java 生態系統中確立了不可撼動的地位,但是框架的使用略顯繁複,Spring Boot可以用於快速構建 Spring 應用程式,它能徹底簡化 Spring 應用程式的編寫過程。
本文借用Spring Boot的官網案例,旨在介紹Spring Boot到底可以幹什麼,讓初學者在很短的時間內對Spring Boot有一個全面的瞭解。
第一步:建立Maven工程
-
POM檔案
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>step01</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 繼承Spring Boot的預設配置--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </parent> <dependencies> <!--Web應用程式的典型依賴項--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--Spring Boot的開發工具,監控編譯的輸出資料夾,提供熱啟動--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> <build> <plugins> <!--Spring Boot的打包外掛,mvn預設的打包工具無法在jar檔案內內嵌jar檔案--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
-
工程結構
step01 | +-src |+-main |+-java |+-Example.java +-pom.xml
第二步:編寫程式碼
-
Example.java
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 示例程式碼,來源於官網文件 * * @author 王慶豐 * @date 2018/12/4 11:03 */ @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
第三步:除錯工程
- 啟動CMD,跳轉到工程根目錄
C:\Users\Administrator>cd F:\IdeaProjects\SpringBoot\step01 C:\Users\Administrator>f: F:\IdeaProjects\SpringBoot\step01>
- 執行工程
mvn spring-boot:run
- 開啟瀏覽器,輸入
http://localhost:8080/
- 瀏覽器內容
Hello World!
第四步:持續開發
-
修改程式碼 Example
。。。。。。。 String home() { return "你好,世界!";//修改此處程式碼 } 。。。。。。。
-
切換到瀏覽器,重新整理
你好,世界!
第五步:打包&啟動
- 啟動CMD,切換到工程根目錄
cd F:\IdeaProjects\SpringBoot\step01
- 打包工程
mvn package
- 檢視target目錄
step01-0.0.1-SNAPSHOT.jar
- 啟動打包後的工程
java -jar ./target/step01-0.0.1-SNAPSHOT.jar
- 刷瀏覽器
你好,世界!
第六步:檢視工程健康狀態
- 瀏覽器位址列輸入如下URL
http://localhost:8080/actuator/health
- 結果
{"status":"UP"}
問題:可能遇到的問題
-
Java 版本和Maven版本
Spring Boot 2.1.1.RELEASE 要求 Java 8及以上、Maven 3.3及以上
-
修改程式碼後,直接重新整理,瀏覽沒有變化(熱啟動無效)
開啟IDE的自動編譯,或者直接編譯修改後的檔案,注意class檔案的輸出目錄
總結:Spring Boot做了什麼?
- 依賴管理:幫助匯入相關依賴
- 自動配置:自動配置相關元件
- 整合內嵌容器:整合Tomcat等內嵌容器
- 打包可執行包:打包為可直接執行的jar或war包
- 開發輔助:spring-boot-devtools提供熱重啟、spring-boot-maven-plugin提供打包等功能
- actuator:幫你監控和管理髮布到生產環境的應用,包括審計、健康檢查、度量資料手收集等。