[Spring Boot 系列教程] 入門

Spring Boot 系列教程目錄

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.xml
    • applicationContext.xml
    • dispatcher-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à)面:

image

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

image

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

image

其中:

  • Demo01Application Spring Boot 的啟動(dòng)入口類,我們可以通過(guò)它的 main 方法來(lái)啟動(dòng)服務(wù)。
  • resources
    • static:默認(rèn)的靜態(tài)資源存儲(chǔ)路徑。
    • templatesthymeleaf 模板存放路徑(Spring Boot 默認(rèn)使用 thymeleaf 作為模板引擎)。
    • application.propertiesSpring Boot 配置文件。
  • build.gradle settings.gradlegradle 的配置文件。

以下是 build.gradle 中配置的依賴項(xiàng):

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

我們可以看到除了 spring-boot-starter-webspring-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

image

除了編寫(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)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容