Spring boot學(xué)習(xí)(一)開啟Spring boot之旅

介紹

Spring boot 是基于Spring的一個(gè)全新的框架,它的目的是用來簡化Spring應(yīng)用的初始搭建以及開發(fā)過程肝匆。如果你以前使用過類似于SSM這種框架,你應(yīng)該清楚要搭建一個(gè)SSM框架需要哪些步驟嘲驾,Spring boot就簡化甚至消除了這些步驟绢要,你會(huì)發(fā)現(xiàn)你基本上什么都不用做,只需要考慮業(yè)務(wù)邏輯方面的代碼就可以了蓄拣,極大的節(jié)省了我們的開發(fā)時(shí)間扬虚,這是一個(gè)用了就不想換的框架!

文章首發(fā)于個(gè)人博客:【http://www.xiongfrblog.cn

搭建一個(gè)簡單的Spring boot應(yīng)用

不同的開發(fā)工具有不同的方式球恤,其中IDEA已經(jīng)集成了Spring boot的插件,直接新建就可以了辜昵,eclipse需要自己安裝插件才能使用。這里我就只介紹通過http://start.spring.io/ 來構(gòu)建一個(gè)Spring boot項(xiàng)目碎捺。

生成項(xiàng)目文件

訪問http://start.spring.io/ 路鹰,出現(xiàn)下面的頁面:

在這里插入圖片描述

從圖中可以看到默認(rèn)是通過Maven構(gòu)建項(xiàng)目,并且使用Java語言收厨,Spring boot使用2.1.2版本晋柱,這些我們根據(jù)自己實(shí)際需求更改,我這里就使用默認(rèn)的诵叁,接下來完善頁面信息雁竞,由于我們只是搭建一個(gè)簡單的Spring boot項(xiàng)目Demo,這里所有的信息使用默認(rèn)的即可拧额。點(diǎn)擊頁面上的 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)建了statictemplates文件夾(如果沒有瀑晒,也不用擔(dān)心绍坝,需要的時(shí)候自己手動(dòng)添加即可,這里應(yīng)該是根據(jù)我們選擇的Spring boot版本以及依賴有關(guān))瑰妄。static文件夾一般用來存放項(xiàng)目中的靜態(tài)資源文件例如:css樣式陷嘴,js腳本,圖片等间坐,templates文件夾一般用來存放html文件灾挨,Spring boot為我們創(chuàng)建這些文件夾的原因下面會(huì)詳細(xì)說明,這里只簡單介紹竹宋。

在根目錄下生成了pom.xml文件劳澄,該文件是Maven管理項(xiàng)目依賴的文件。

重要的文件就這些蜈七,以后隨著項(xiàng)目功能的增加還會(huì)自己添加一些文件秒拔,這里不做過多介紹。

簡單演示

首先我們?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)如下:

在這里插入圖片描述

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

在這里插入圖片描述

控制臺(tái)打印出如下日志說明啟動(dòng)成功:

在這里插入圖片描述

從日志看出啟動(dòng)端口為8080,此時(shí)打開瀏覽器訪問localhost:8080/hello或者127.0.0.1:8080/hello即可出現(xiàn)如下內(nèi)容:

在這里插入圖片描述

到這一步,一個(gè)簡單的Spring boot項(xiàng)目就完成了雀监,是不是很簡單呢双吆。

訪問頁面

實(shí)際的web項(xiàng)目中我們總是會(huì)訪問html頁面,那么在Spring boot中怎么訪問頁面呢会前?下面來介紹創(chuàng)建Spring boot的第一個(gè)頁面index.html好乐。

在上面介紹過的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í)我們還沒有配置Spring boot的熱部署功能笛坦,Spring boot不會(huì)為我們自動(dòng)加載更新的內(nèi)容区转,需要我們手動(dòng)啟動(dòng),啟動(dòng)成功后版扩,訪問localhost:8080或者127.0.0.1:8080出現(xiàn)如下內(nèi)容說明訪問成功:

在這里插入圖片描述

至此,我們已經(jīng)通過Spring boot成功訪問到第一個(gè)頁面了侄泽,到這里礁芦,細(xì)心的小伙伴也許會(huì)發(fā)現(xiàn),上邊我說過src/main/resources下的templates文件夾是用來存放html文件的悼尾,為什么我們這里要將index.html放在public文件夾下呢柿扣?

注意

因?yàn)檫@里我們沒有使用例如thymeleafFreeMaker闺魏、Velocity未状、JSP等模板引擎,所以我們的html文件必須按照Spring boot的約定放在特定的目錄下,例如public析桥。但是在實(shí)際的項(xiàng)目中(前后端分離項(xiàng)目除外)我們一般都會(huì)選擇一個(gè)模板引擎來渲染頁面數(shù)據(jù)以及做一些邏輯判斷司草,比如筆者用的就是thymeleaf,項(xiàng)目中的html文件一般都放在templates目錄下。

約定大于配置

Spring boot中有很多約定俗成的配置需要我們遵守泡仗,不然會(huì)有很糟糕的體驗(yàn)埋虹,正所謂約定大于配置

  1. Spring boot默認(rèn)提供靜態(tài)資源目錄位置需置于classpath下娩怎,即上面說的src/main/resources目錄下搔课,并且靜態(tài)資源存放的目錄必須符合以下規(guī)則(目錄名字不能隨意更改):
  • /META-INF/resources
  • /resources
  • /static
  • /public

并且他們的優(yōu)先級(jí)從高到低,即/META-INF/resources>/resources>/static>/public,在訪問靜態(tài)資源時(shí)截亦,Spring boot會(huì)按照優(yōu)先級(jí)從上面的目錄中尋找爬泥,驗(yàn)證這一點(diǎn)很簡單,上邊我們?cè)?code>public目錄下新建了index.html文件崩瓤,現(xiàn)在我們?cè)?code>static目錄下同樣新建index.html文件袍啡,寫不同的內(nèi)容,重啟項(xiàng)目谷遂,再次訪問localhost:8080或者127.0.0.1:8080你會(huì)發(fā)現(xiàn)此時(shí)顯示的就是static目錄下的index.html文件中的內(nèi)容葬馋。

  1. Spring boot默認(rèn)的配置文件必須是,也只能是application或application-xxx命名的yml文件或者properties文件肾扰,當(dāng)然我們也可以自己創(chuàng)建額外的配置文件畴嘶,但需要其他的配置,以后會(huì)介紹集晚,這里不做過多概述窗悯。
  2. 在yml文件或者properties文件中配置Spring boot的某些功能時(shí),必須指定特定變量的值偷拔,比如我們想要修改項(xiàng)目啟動(dòng)的端口為1188蒋院,需要在properties配置文件中寫入:
server.port=1188

在yml文件中則是:

server: 
  port: 1188

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

結(jié)語

好了,到這里相信你已經(jīng)對(duì)Spring boot有了一個(gè)大概的了解欺旧,關(guān)于Spring boot的更多內(nèi)容博主會(huì)繼續(xù)更新姑丑,bye~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辞友,隨后出現(xiàn)的幾起案子栅哀,更是在濱河造成了極大的恐慌,老刑警劉巖称龙,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件留拾,死亡現(xiàn)場離奇詭異,居然都是意外死亡鲫尊,警方通過查閱死者的電腦和手機(jī)痴柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疫向,“玉大人咳蔚,你說我怎么就攤上這事『枧酰” “怎么了屹篓?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匙奴。 經(jīng)常有香客問我堆巧,道長,這世上最難降的妖魔是什么泼菌? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任谍肤,我火速辦了婚禮,結(jié)果婚禮上哗伯,老公的妹妹穿的比我還像新娘荒揣。我一直安慰自己,他們只是感情好焊刹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布系任。 她就那樣靜靜地躺著,像睡著了一般虐块。 火紅的嫁衣襯著肌膚如雪俩滥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天贺奠,我揣著相機(jī)與錄音霜旧,去河邊找鬼。 笑死儡率,一個(gè)胖子當(dāng)著我的面吹牛挂据,可吹牛的內(nèi)容都是我干的以清。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼崎逃,長吁一口氣:“原來是場噩夢啊……” “哼掷倔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起婚脱,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤今魔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后障贸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吟宦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年篮洁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殃姓。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袁波,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜗侈,到底是詐尸還是另有隱情篷牌,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布踏幻,位于F島的核電站枷颊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏该面。R本人自食惡果不足惜夭苗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隔缀。 院中可真熱鬧题造,春花似錦、人聲如沸猾瘸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牵触。三九已至淮悼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荒吏,已是汗流浹背敛惊。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绰更,地道東北人瞧挤。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓锡宋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親特恬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子执俩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容