介紹
Spring boot 是基于Spring的一個(gè)全新的框架,它的目的是用來(lái)簡(jiǎn)化Spring應(yīng)用的初始搭建以及開發(fā)過(guò)程。如果你以前使用過(guò)類似于SSM這種框架,你應(yīng)該清楚要搭建一個(gè)SSM框架需要哪些步驟,Spring boot就簡(jiǎn)化甚至消除了這些步驟,你會(huì)發(fā)現(xiàn)你基本上什么都不用做,只需要考慮業(yè)務(wù)邏輯方面的代碼就可以了,極大的節(jié)省了我們的開發(fā)時(shí)間,這是一個(gè)用了就不想換的框架!
文章首發(fā)于個(gè)人博客:【http://www.xiongfrblog.cn】
搭建一個(gè)簡(jiǎn)單的Spring boot應(yīng)用
不同的開發(fā)工具有不同的方式,其中IDEA已經(jīng)集成了Spring boot的插件,直接新建就可以了,eclipse需要自己安裝插件才能使用。這里我就只介紹通過(guò)http://start.spring.io/ 來(lái)構(gòu)建一個(gè)Spring boot項(xiàng)目。
生成項(xiàng)目文件
訪問(wèn)http://start.spring.io/ ,出現(xiàn)下面的頁(yè)面:
從圖中可以看到默認(rèn)是通過(guò)Maven構(gòu)建項(xiàng)目,并且使用Java語(yǔ)言,Spring boot使用2.1.2版本,這些我們根據(jù)自己實(shí)際需求更改,我這里就使用默認(rèn)的,接下來(lái)完善頁(yè)面信息,由于我們只是搭建一個(gè)簡(jiǎn)單的Spring boot項(xiàng)目Demo,這里所有的信息使用默認(rèn)的即可。點(diǎn)擊頁(yè)面上的 Switch to the full version,出現(xiàn)更多的配置以及讓我們選擇的依賴項(xiàng),配置我們不用管,勾選上web依賴就可以了,如下圖:
最后我們點(diǎn)擊generate project按鈕生成項(xiàng)目文件,文件是一個(gè)壓縮包,選擇保存的路徑下載到本地。
導(dǎo)入到開發(fā)工具
將我們上一步下載的壓縮包解壓,然后以Maven項(xiàng)目的形式導(dǎo)入到我們使用的開發(fā)工具中(我這里使用的eclipse),這個(gè)步驟可能會(huì)需要一會(huì)兒時(shí)間,耐心等待即可,項(xiàng)目導(dǎo)入成功后項(xiàng)目的結(jié)構(gòu)如下:

會(huì)發(fā)現(xiàn)在src/main/java目錄下的com.example.demo包下為我們生成了一個(gè)DemoApplication.java的文件,這是我們項(xiàng)目的入口類,名字是按ArtifactId+Application的命名規(guī)則生成的。
在src/main/resources目錄下生成了application.properties配置文件,以后項(xiàng)目有關(guān)的配置都寫在這個(gè)文件里邊。
在src/main/resources目錄下還為我們創(chuàng)建了static和templates文件夾(如果沒(méi)有,也不用擔(dān)心,需要的時(shí)候自己手動(dòng)添加即可,這里應(yīng)該是根據(jù)我們選擇的Spring boot版本以及依賴有關(guān))。static文件夾一般用來(lái)存放項(xiàng)目中的靜態(tài)資源文件例如:css樣式,js腳本,圖片等,templates文件夾一般用來(lái)存放html文件,Spring boot為我們創(chuàng)建這些文件夾的原因下面會(huì)詳細(xì)說(shuō)明,這里只簡(jiǎn)單介紹。
在根目錄下生成了pom.xml文件,該文件是Maven管理項(xiàng)目依賴的文件。
重要的文件就這些,以后隨著項(xiàng)目功能的增加還會(huì)自己添加一些文件,這里不做過(guò)多介紹。
簡(jiǎn)單演示
首先我們?cè)?code>com.exanple.demo包下邊新建一個(gè)controller包(注意包名統(tǒng)一小寫),在該包下新建DemoController.java文件,文件內(nèi)容如下:
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!";
}
}
此時(shí)項(xiàng)目結(jié)構(gòu)如下:

接下來(lái)需要啟動(dòng)項(xiàng)目,上邊說(shuō)過(guò)Spring boot為我們自動(dòng)生成了一個(gè)啟動(dòng)類DemoApplication.java我們只需要右鍵點(diǎn)擊該啟動(dòng)類,選擇Run as 再選擇Java Application即可,如圖:

控制臺(tái)打印出如下日志說(shuō)明啟動(dòng)成功:
從日志看出啟動(dòng)端口為8080,此時(shí)打開瀏覽器訪問(wèn)localhost:8080/hello或者127.0.0.1:8080/hello即可出現(xiàn)如下內(nèi)容:

到這一步,一個(gè)簡(jiǎn)單的Spring boot項(xiàng)目就完成了,是不是很簡(jiǎn)單呢。
訪問(wèn)頁(yè)面
實(shí)際的web項(xiàng)目中我們總是會(huì)訪問(wèn)html頁(yè)面,那么在Spring boot中怎么訪問(wèn)頁(yè)面呢?下面來(lái)介紹創(chuàng)建Spring boot的第一個(gè)頁(yè)面index.html。
在上面介紹過(guò)的src/main/resources目錄下新建一個(gè)文件夾public,在public文件夾下新建index.html,內(nèi)容如下(隨便寫都行):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>This is my first page!</h1>
</body>
</html>
按照上邊的步驟重新啟動(dòng)項(xiàng)目,一定要重新啟動(dòng),此時(shí)我們還沒(méi)有配置Spring boot的熱部署功能,Spring boot不會(huì)為我們自動(dòng)加載更新的內(nèi)容,需要我們手動(dòng)啟動(dòng),啟動(dòng)成功后,訪問(wèn)localhost:8080或者127.0.0.1:8080出現(xiàn)如下內(nèi)容說(shuō)明訪問(wèn)成功:

至此,我們已經(jīng)通過(guò)Spring boot成功訪問(wèn)到第一個(gè)頁(yè)面了,到這里,細(xì)心的小伙伴也許會(huì)發(fā)現(xiàn),上邊我說(shuō)過(guò)src/main/resources下的templates文件夾是用來(lái)存放html文件的,為什么我們這里要將index.html放在public文件夾下呢?
注意
因?yàn)檫@里我們沒(méi)有使用例如thymeleaf、FreeMaker、Velocity、JSP等模板引擎,所以我們的html文件必須按照Spring boot的約定放在特定的目錄下,例如public。但是在實(shí)際的項(xiàng)目中(前后端分離項(xiàng)目除外)我們一般都會(huì)選擇一個(gè)模板引擎來(lái)渲染頁(yè)面數(shù)據(jù)以及做一些邏輯判斷,比如筆者用的就是thymeleaf,項(xiàng)目中的html文件一般都放在templates目錄下。
約定大于配置
Spring boot中有很多約定俗成的配置需要我們遵守,不然會(huì)有很糟糕的體驗(yàn),正所謂約定大于配置。
- Spring boot默認(rèn)提供靜態(tài)資源目錄位置需置于classpath下,即上面說(shuō)的
src/main/resources目錄下,并且靜態(tài)資源存放的目錄必須符合以下規(guī)則(目錄名字不能隨意更改):
- /META-INF/resources
- /resources
- /static
- /public
并且他們的優(yōu)先級(jí)從高到低,即/META-INF/resources>/resources>/static>/public,在訪問(wèn)靜態(tài)資源時(shí),Spring boot會(huì)按照優(yōu)先級(jí)從上面的目錄中尋找,驗(yàn)證這一點(diǎn)很簡(jiǎn)單,上邊我們?cè)?code>public目錄下新建了index.html文件,現(xiàn)在我們?cè)?code>static目錄下同樣新建index.html文件,寫不同的內(nèi)容,重啟項(xiàng)目,再次訪問(wèn)localhost:8080或者127.0.0.1:8080你會(huì)發(fā)現(xiàn)此時(shí)顯示的就是static目錄下的index.html文件中的內(nèi)容。
- Spring boot默認(rèn)的配置文件必須是,也只能是application或application-xxx命名的yml文件或者properties文件,當(dāng)然我們也可以自己創(chuàng)建額外的配置文件,但需要其他的配置,以后會(huì)介紹,這里不做過(guò)多概述。
- 在yml文件或者properties文件中配置Spring boot的某些功能時(shí),必須指定特定變量的值,比如我們想要修改項(xiàng)目啟動(dòng)的端口為
1188,需要在properties配置文件中寫入:
server.port=1188
在yml文件中則是:
server:
port: 1188
正是這些約定使得Spring boot變得如此簡(jiǎn)單。
結(jié)語(yǔ)
好了,到這里相信你已經(jīng)對(duì)Spring boot有了一個(gè)大概的了解,關(guān)于Spring boot的更多內(nèi)容博主會(huì)繼續(xù)更新,bye~