文章目錄
- 一、 簡介
- 二、快速入門
- 三、創建基礎專案
- 1. 使用 Spring Initalizr 頁面創建
- 2. 使用 IntelliJ IDEA創建
- 四、專案結構決議
- 五、專案依賴決議
- 六、撰寫一個HTTP介面
- 七、撰寫單元測驗用例
一、 簡介
Spring Boot讓我們的Spring應用變的更輕量化,我們不必像以前那樣繁瑣的構建專案、打包應用、部署到Tomcat等應用服務器中來運行我們的業務服務,通過Spring Boot實作的服務,只需要依靠一個Java類,把它打包成jar,并通過java -jar命令就可以運行起來,這一切相較于傳統Spring應用來說,已經變得非常的輕便、簡單,
總結一下Spring Boot的主要優點:
- 為所有Spring開發者更快的入門
- 開箱即用,提供各種默認配置來簡化專案配置
- 內嵌式容器簡化 Web 專案
- 沒有冗余代碼生成和 XML 配置的要求
二、快速入門
本文我們將學習如何快速創建一個 Spring Boot 應用,通過這個列子對 Spring Boot 有一個 初步的了解,并體驗其結構簡單,快速開發的特性,
三、創建基礎專案
Spring 官方提供了非常方便的工具 Spring Initalizr 來幫助我們創建 Spring Boot 應用,
1. 使用 Spring Initalizr 頁面創建
第一步:訪問Spring Initializr:https://start.spring.io/

- Project:使用什么構建工具,Maven 還是 Gradle;
- Language:使用什么編程語言,Java
- Spring Boot:選用的Spring Boot版本;這里將使用當前最新的
2.6.2版本, - Project Metadata:專案的元資料;其實就是Maven專案的基本元素
- Dependencies:選擇要加入的Spring Boot組件;本文將實作一個Http 介面,所以可以選擇Web組件,只需要輸入Web,頁面會自動聯想顯示匹配的可選組件:
第二步:點擊 “Generate Project” 按鈕生成專案;此時瀏覽器會下載一個與上面Artifact名稱一樣的壓縮包,
第三步:解壓專案包,并用編譯器以 Maven 專案匯入,以 IntelliJ IDEA 為例:

- 選擇解壓后的專案檔案夾,點擊OK
- 點擊:Import project from external model,并選擇Maven,點擊Next到底為止,
- 若你的環境有多個版本的JDK,注意到選擇Java SDK的時候請選擇Java 8(具體根據你在第一步中選擇的Java版本為準)
2. 使用 IntelliJ IDEA創建
如果是使用 IntelliJ IDEA來寫Java程式的話,那么還可以直接在編譯器中創建Spring Boot應用,
第一步:選單欄中選擇:File => New => Project…,我們可以看到如下圖所示的創建功能視窗,

其中Initial Service Url指向的地址就是Spring官方提供的Spring Initializr工具地址,所以這里創建的工程實際上也是基于它的Web工具來實作的,
第二步:點擊Next,等待片刻后,我們可以看到如下圖所示的工程資訊視窗:

其實內容就跟我們用Web版的Spring Initializr是一模一樣的,跟之前在頁面上一樣填寫即可,
第三步:繼續點擊Next,進入選擇Spring Boot版本和依賴管理的視窗:

第四步:點擊Next,進入最后關于工程物理存盤的一些細節,最后,點擊Finish就能完成工程的構建了,

四、專案結構決議

通過上面步驟完成了基礎專案的創建,如上圖所示,Spring Boot的基礎結構共三個檔案
src/main/java下的程式入口:Chapter1Applicationsrc/main/resources下的組態檔:application.propertiessrc/test/下的測驗入口:Chapter1ApplicationTests
生成的Chapter1Application和Chapter1ApplicationTests類都可以直接運行來啟動當前創建的專案,由于目前該專案未配合任何資料訪問或Web模塊,程式會在加載完Spring之后結束運行,
五、專案依賴決議
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.chapter</groupId>
<artifactId>chapter1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>chapter1</name>
<description>SpringBoot第一章</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
打開pom.xml,一起來看看Spring Boot專案的依賴:
如上所示,主要有四個部分:
- 專案元資料:創建時候輸入的 Project Metadata 部分,也就是Maven專案的基本元素,包括:groupId、artifactId、version、name、description等
- parent:繼承
spring-boot-starter-parent的依賴管理,控制版本與打包等內容 - dependencies:專案具體依賴,這里包含了
spring-boot-starter-web用于實作HTTP介面(該依賴中包含了Spring MVC);spring-boot-starter-test用于撰寫單元測驗的依賴包,更多功能模塊的使用我們將在后面的教程中逐步展開, - build:構建配置部分,默認使用了
spring-boot-maven-plugin(Spring Boot Maven插件),配合spring-boot-starter-parent就可以把 Spring Boot 應用打包成 JAR 來直接運行,
六、撰寫一個HTTP介面
- 創建
TestController類,內容如下:
package com.chapter.chapter1;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/test")
public String index() {
return "Hello World";
}
}
@RestController:相當于 @Controller+@ResponseBody 兩個注解的結合,回傳json資料不需要在方法前面加@ResponseBody注解了
至此已完成目標,通過 Maven 構建了一個空白 Spring Boot 專案,再通過引入 web 模塊實作了一個簡單的請求處理,
- 啟動主程式,使用PostMan等工具發起請求:
http://localhost:8080/test,可以看到頁面回傳:Hello World
七、撰寫單元測驗用例
打開的src/test/下的測驗入口Chapter1ApplicationTests類,下面撰寫一個簡單的單元測驗來模擬http請求,具體如下:
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@SpringBootTest
class Chapter1ApplicationTests {
private MockMvc mvc;
@BeforeEach
public void setUp() {
mvc = MockMvcBuilders.standaloneSetup(new TestController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/test").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
使用MockServletContext來構建一個空的WebApplicationContext,這樣我們創建的TestController就可以在@BeforeEach函式中創建并傳遞到MockMvcBuilders.standaloneSetup()函式中,
注意引入下面內容,讓status、content、equalTo函式可用
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
至此已完成目標,通過Maven構建了一個空白Spring Boot專案,再通過引入web模塊實作了一個簡單的請求處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/400537.html
標籤:java
上一篇:Java小題精煉訓練營(篇一)
