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:幫你監控和管理發布到生產環境的應用,包括審計、健康檢查、度量數據收集等。