摘要:SpringBoot學(xué)習(xí)之路之.第一個(gè)程序Hello World及項(xiàng)目結(jié)構(gòu)介紹
上一篇我們介紹了Spring Boot項(xiàng)目的環(huán)境搭建和在idea下項(xiàng)目的創(chuàng)建過程,今天要說的是Spring Boot項(xiàng)目的下的第一個(gè)程序Hello World,及Spring Boot項(xiàng)目結(jié)構(gòu)的分析。
首先打開Spring Boot初始項(xiàng)目:

刪除暫時(shí)不用的目錄.mvn以及git配置忽略文件.gitignore、maven的mvnw和mvnw.cmd文件;展開項(xiàng)目目錄如下:

1.項(xiàng)目目錄說明
下面先就項(xiàng)目目錄做說明:src目錄下是main和test,main是后面我們主要用到的目錄,使我們源碼的編寫目錄,test目錄是我們做單元測試的目錄;main目錄下包含java和resources,java目錄就是寫java源代碼的目錄,resources是放置配置文件和頁面靜態(tài)資源文件的目錄;展開resources目錄包含static和templates目錄,static是spring boot默認(rèn)的靜態(tài)資源目錄,templates是默認(rèn)的頁面模板放置目錄。
java文件下默認(rèn)創(chuàng)建了Spring Boot的啟動(dòng)類BootApplication,注釋了@SpringBootApplication,后面的章節(jié)我們會(huì)專門分析Spring Boot的注釋,啟動(dòng)類是包含一個(gè)Main方法,也是Spring Boot應(yīng)用的啟動(dòng)入口,如下:

resources下的application.properties是項(xiàng)目的配置文件我們以后不使用它,而是采用支持YAML語法的application.yml配置文件,可讀性非常高,將properties文件換成yml文件,并且在yml文件中做一些基本的配置,如下:

server是對服務(wù)器的信息的配置,本例配置了服務(wù)器的端口是80,地址是本機(jī)地址127.0.0.1,項(xiàng)目content目錄是rest,待會(huì)通過啟動(dòng)后訪問即可明白配置。
2.Spring Boot的maven文件依賴說明
打開項(xiàng)目目錄下的pom.xml文件,此文件是maven構(gòu)建項(xiàng)目的配置文件,里面定義了項(xiàng)目的基本信息,及依賴、插件等信息,對Maven不熟悉的同學(xué)可以先看看maven的相關(guān)知識。

以上是項(xiàng)目的基本信息以及pringboot官方推薦我們使用spring-boot-starter-parent的依賴,spring-boot-starter-parent包含了以下信息:
1、定義了jdk編譯級別
2、使用utf-8編碼
3、實(shí)現(xiàn)了通用的測試框架junit
4、智能資源過濾
5、智能的插件配置

以上是項(xiàng)目初始的主要依賴,還記得上章《SpringBoot學(xué)習(xí)之路:01.開發(fā)環(huán)境搭建及概念敘述》在創(chuàng)建項(xiàng)目時(shí)我們勾選了web和devtools依賴,這里就在pom計(jì)入了相關(guān)依賴,test是單元測試依賴,我們后面需要什么依賴直接在pom文件加入依賴即可。

以上是maven編譯需要的spring boot編譯插件:spring-boot-maven-plugin
3.第一個(gè)Spring Boot項(xiàng)目之Hello World
我們創(chuàng)建一個(gè)控制器,編寫我們的第一個(gè)Spring Boot應(yīng)用,創(chuàng)建主控制器,編寫一個(gè)restful接口測試返回Hello World到頁面,控制器如下:

接下來我們啟動(dòng)程序,如下在控制臺輸出啟動(dòng)信息:

從啟動(dòng)輸出信息可以看到我們在配置文件配置的端口是80 生效的,接下來我們在瀏覽器驗(yàn)證是否能看到輸出hello world信息:

通過訪問項(xiàng)目我們發(fā)現(xiàn)成功輸出,并且配置的80端口和rest上下文路徑也生效,第一個(gè)簡單的Spring Boot應(yīng)用到這就實(shí)現(xiàn)了。下一篇將會(huì)講解Spring Boot+jpa實(shí)現(xiàn)對數(shù)據(jù)庫的操作。
MaxBill(2017-03-10)