Spring Boot 簡(jiǎn)介
首先,讓我們來(lái)看一下在沒(méi)有 Spring Boot 的時(shí)候,開(kāi)發(fā)一個(gè) Java 程序有多么繁雜。
以開(kāi)發(fā)一個(gè)簡(jiǎn)單的 Hello world 程序開(kāi)始吧。你要做的事情有:
- 確定技術(shù)選型(Spring, Spring mvc)
- 創(chuàng)建 maven 項(xiàng)目,添加依賴項(xiàng)
- 創(chuàng)建相關(guān)配置文件
web.xmlapplicationContext.xmldispatcher-servlet.xml- ...
- 編碼實(shí)現(xiàn)
hello world - 編寫(xiě)
JSP - 將項(xiàng)目打成
War包 - 下載和配置
Tomcat服務(wù)器,并將War包部署到Tomcat下 - 運(yùn)行
Tomcat
在以上的步驟中,你可能會(huì)遇到:
-
ClassNotFoundException:沒(méi)有添加相關(guān)依賴 -
NoClassDefFoundError:可能是添加的依賴項(xiàng)有沖突 - 服務(wù)無(wú)法啟動(dòng):配置文件編寫(xiě)錯(cuò)誤或是其它原因
這只是一個(gè)最簡(jiǎn)單的 Hello world 項(xiàng)目,卻要編寫(xiě) N 多的配置項(xiàng),同時(shí)還要注意引入依賴項(xiàng)的兼容性問(wèn)題,這就導(dǎo)致了我們?cè)陂_(kāi)發(fā)時(shí)需要很大的精力去維護(hù)這些與業(yè)務(wù)無(wú)關(guān)的東西, 使用Spring Boot 就可以讓我們避免以上的這些問(wèn)題,讓開(kāi)發(fā)者把時(shí)間花在具體業(yè)務(wù)邏輯的編寫(xiě)上。
開(kāi)發(fā)第一個(gè) Spring Boot 應(yīng)用
Spring Boot 官方提供了一個(gè)在線工具,可以讓我們快速生成開(kāi)發(fā)腳手架:在線工具
點(diǎn)擊上面的鏈接之后,我們可以看到以下的畫(huà)面:

這里可以選擇構(gòu)建工具、語(yǔ)言以及 Spring Boot 的版本號(hào),因?yàn)槲覀兊捻?xiàng)目是基于 1.5.x ,所以我們就選擇最新的 GA 版本 1.5.19,構(gòu)建工具和語(yǔ)言選擇為 Gradle 和 Java,你也可以根據(jù)自身的喜好進(jìn)行選擇?;A(chǔ)信息填寫(xiě)完成后,我們還需要添加 Spring MVC 的依賴,點(diǎn)擊 Switch to the full version鏈接,并勾選 Spring MVC 依賴:

最后點(diǎn)擊 Gennerate Project 按鈕就可以下載項(xiàng)目框架了,我們將它解壓至本地并導(dǎo)入到 IDE 中,可以看到項(xiàng)目的基本結(jié)構(gòu)為:

其中:
-
Demo01ApplicationSpring Boot 的啟動(dòng)入口類,我們可以通過(guò)它的main方法來(lái)啟動(dòng)服務(wù)。 -
resources-
static:默認(rèn)的靜態(tài)資源存儲(chǔ)路徑。 -
templates:thymeleaf模板存放路徑(Spring Boot默認(rèn)使用thymeleaf作為模板引擎)。 -
application.properties:Spring Boot配置文件。
-
-
build.gradlesettings.gradle:gradle的配置文件。
以下是 build.gradle 中配置的依賴項(xiàng):
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
我們可以看到除了 spring-boot-starter-web 和 spring-boot-starter-test 之外沒(méi)有任何其他的依賴,因?yàn)槠渌行枰囊蕾図?xiàng) Spring Boot 都幫我們默認(rèn)引入了。
下面來(lái)實(shí)現(xiàn)我們的第一個(gè) Spring Boot 應(yīng)用:
@RestController
public class HelloWorldController {
@GetMapping("hello")
public String hello() {
return "hello world!";
}
}
以上的就是我們實(shí)現(xiàn) hello world 需要編寫(xiě)的所有代碼,接下來(lái)啟動(dòng)服務(wù),在 IDE 中運(yùn)行 Demo01Application.main 方法,即可啟動(dòng)我們的服務(wù):
[圖片上傳失敗...(image-fdf164-1548166840408)]
啟動(dòng)完成后,訪問(wèn):http://localhost:8080/hello 即可以看到我們編寫(xiě)的 hello world:

除了編寫(xiě)不到 20 行的 Controller 層代碼之外,沒(méi)有其它任何操作,不需要配置復(fù)雜易錯(cuò)的 XML,不需要關(guān)心各種框架的依賴沖突,甚至不需要 Web 容器(Spring Boot 會(huì)默認(rèn)使用內(nèi)嵌的 Tomcat 容器,可以通過(guò)配置修改),我們所需要的做的,只是編寫(xiě)業(yè)務(wù)相關(guān)的代碼,其它的事情,Spring Boot 都幫我們處理了。
本篇教程到此結(jié)束,在下一篇教程中,我將進(jìn)一步介紹 Spring Boot 的構(gòu)建、配置、打包和運(yùn)行。