Spring boot學習(一)開啟Spring boot之旅

諾丨言發表於2019-01-17

介紹

Spring boot 是基於Spring的一個全新的框架,它的目的是用來簡化Spring應用的初始搭建以及開發過程。如果你以前使用過類似於SSM這種框架,你應該清楚要搭建一個SSM框架需要哪些步驟,Spring boot就簡化甚至消除了這些步驟,你會發現你基本上什麼都不用做,只需要考慮業務邏輯方面的程式碼就可以了,極大的節省了我們的開發時間,這是一個用了就不想換的框架!

文章首發於個人部落格:【www.xiongfrblog.cn

搭建一個簡單的Spring boot應用

不同的開發工具有不同的方式,其中IDEA已經整合了Spring boot的外掛,直接新建就可以了,eclipse需要自己安裝外掛才能使用。這裡我就只介紹通過http://start.spring.io/ 來構建一個Spring boot專案。

生成專案檔案

訪問http://start.spring.io/ ,出現下面的頁面:

在這裡插入圖片描述

從圖中可以看到預設是通過Maven構建專案,並且使用Java語言,Spring boot使用2.1.2版本,這些我們根據自己實際需求更改,我這裡就使用預設的,接下來完善頁面資訊,由於我們只是搭建一個簡單的Spring boot專案Demo,這裡所有的資訊使用預設的即可。點選頁面上的 Switch to the full version,出現更多的配置以及讓我們選擇的依賴項,配置我們不用管,勾選上web依賴就可以了,如下圖:

在這裡插入圖片描述

最後我們點選generate project按鈕生成專案檔案,檔案是一個壓縮包,選擇儲存的路徑下載到本地。

匯入到開發工具

將我們上一步下載的壓縮包解壓,然後以Maven專案的形式匯入到我們使用的開發工具中(我這裡使用的eclipse),這個步驟可能會需要一會兒時間,耐心等待即可,專案匯入成功後專案的結構如下:

在這裡插入圖片描述

會發現在src/main/java目錄下的com.example.demo包下為我們生成了一個DemoApplication.java的檔案,這是我們專案的入口類,名字是按ArtifactId+Application的命名規則生成的。

src/main/resources目錄下生成了application.properties配置檔案,以後專案有關的配置都寫在這個檔案裡邊。

src/main/resources目錄下還為我們建立了statictemplates資料夾(如果沒有,也不用擔心,需要的時候自己手動新增即可,這裡應該是根據我們選擇的Spring boot版本以及依賴有關)。static資料夾一般用來存放專案中的靜態資原始檔例如:css樣式,js指令碼,圖片等,templates資料夾一般用來存放html檔案,Spring boot為我們建立這些資料夾的原因下面會詳細說明,這裡只簡單介紹。

在根目錄下生成了pom.xml檔案,該檔案是Maven管理專案依賴的檔案。

重要的檔案就這些,以後隨著專案功能的增加還會自己新增一些檔案,這裡不做過多介紹。

簡單演示

首先我們在com.exanple.demo包下邊新建一個controller包(注意包名統一小寫),在該包下新建DemoController.java檔案,檔案內容如下:

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @author Promise
* @createTime 2019年1月13日 下午5:15:45
* @description 
*/
@RestController
public class DemoController {

	@RequestMapping("/hello")
	public String hello() {
		return "Hello World!";
	}
}
複製程式碼

此時專案結構如下:

在這裡插入圖片描述

接下來需要啟動專案,上邊說過Spring boot為我們自動生成了一個啟動類DemoApplication.java我們只需要右鍵點選該啟動類,選擇Run as 再選擇Java Application即可,如圖:

在這裡插入圖片描述

控制檯列印出如下日誌說明啟動成功:

在這裡插入圖片描述

從日誌看出啟動埠為8080,此時開啟瀏覽器訪問localhost:8080/hello或者127.0.0.1:8080/hello即可出現如下內容:

在這裡插入圖片描述

到這一步,一個簡單的Spring boot專案就完成了,是不是很簡單呢。

訪問頁面

實際的web專案中我們總是會訪問html頁面,那麼在Spring boot中怎麼訪問頁面呢?下面來介紹建立Spring boot的第一個頁面index.html

在上面介紹過的src/main/resources目錄下新建一個資料夾public,在public資料夾下新建index.html,內容如下(隨便寫都行):

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
		<h1>This is my first page!</h1>
</body>
</html>
複製程式碼

按照上邊的步驟重新啟動專案,一定要重新啟動,此時我們還沒有配置Spring boot的熱部署功能,Spring boot不會為我們自動載入更新的內容,需要我們手動啟動,啟動成功後,訪問localhost:8080或者127.0.0.1:8080出現如下內容說明訪問成功:

在這裡插入圖片描述

至此,我們已經通過Spring boot成功訪問到第一個頁面了,到這裡,細心的小夥伴也許會發現,上邊我說過src/main/resources下的templates資料夾是用來存放html檔案的,為什麼我們這裡要將index.html放在public資料夾下呢?

注意

因為這裡我們沒有使用例如thymeleafFreeMakerVelocityJSP等模板引擎,所以我們的html檔案必須按照Spring boot的約定放在特定的目錄下,例如public。但是在實際的專案中(前後端分離專案除外)我們一般都會選擇一個模板引擎來渲染頁面資料以及做一些邏輯判斷,比如筆者用的就是thymeleaf,專案中的html檔案一般都放在templates目錄下。

約定大於配置

Spring boot中有很多約定俗成的配置需要我們遵守,不然會有很糟糕的體驗,正所謂約定大於配置

  1. Spring boot預設提供靜態資源目錄位置需置於classpath下,即上面說的src/main/resources目錄下,並且靜態資源存放的目錄必須符合以下規則(目錄名字不能隨意更改):
  • /META-INF/resources
  • /resources
  • /static
  • /public

並且他們的優先順序從高到低,即/META-INF/resources>/resources>/static>/public,在訪問靜態資源時,Spring boot會按照優先順序從上面的目錄中尋找,驗證這一點很簡單,上邊我們在public目錄下新建了index.html檔案,現在我們在static目錄下同樣新建index.html檔案,寫不同的內容,重啟專案,再次訪問localhost:8080或者127.0.0.1:8080你會發現此時顯示的就是static目錄下的index.html檔案中的內容。

  1. Spring boot預設的配置檔案必須是,也只能是application或application-xxx命名的yml檔案或者properties檔案,當然我們也可以自己建立額外的配置檔案,但需要其他的配置,以後會介紹,這裡不做過多概述。
  2. 在yml檔案或者properties檔案中配置Spring boot的某些功能時,必須指定特定變數的值,比如我們想要修改專案啟動的埠為1188,需要在properties配置檔案中寫入:
server.port=1188
複製程式碼

在yml檔案中則是:

server: 
  port: 1188
複製程式碼

正是這些約定使得Spring boot變得如此簡單。

結語

好了,到這裡相信你已經對Spring boot有了一個大概的瞭解,關於Spring boot的更多內容博主會繼續更新,bye~

相關文章