SpringBoot入門教程詳解
一、SpringBoot簡介
SpringBoot 是由 Pivotal 團隊提供的全新框架,其設(shè)計目的是用來簡化 Spring 應(yīng)用的初始搭建以及開發(fā)過程。
我們在學(xué)習(xí) Spring 的時候說過 Spring 框架是為了簡化開發(fā)的,而 SpringBoot 是為了簡化 Spring 開發(fā)的,由此可見,使用 SpringBoot 開發(fā)將會更加的方便簡捷。
那 SpringBoot 是如何簡化開發(fā)的呢?我們以一個入門案例來說明。
二、SpringBoot入門案例
1、創(chuàng)建項目
我使用的 IDEA 版本偏低,可能頁面會有些許不同,但是大體應(yīng)該還是一致的。
使用 Spring Initializr 需要保證在聯(lián)網(wǎng)的情況,但是有時在聯(lián)網(wǎng)時也無法成功創(chuàng)建,可以使用下述方式,將網(wǎng)址改為阿里云的,我就是第一種方式怎么也創(chuàng)建不了,改用阿里云之后就可以了。
因為我們是進(jìn)行 Web 開發(fā),所以我勾選了 Spring Web。之后還可以勾選一些比較使用的開發(fā)工具等。
為項目命名。
點擊 Finish 創(chuàng)建成功后,項目結(jié)構(gòu)如下圖所示。
2、編寫 Controller 類
先拋開實體類、數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層等內(nèi)容,我們直接簡單測試一下表現(xiàn)層。
@RestController @RequestMapping("users") public class UserController { @GetMapping("/{id}") public String getById(@PathVariable Integer id){ System.out.println("id ==> " + id); return "{'msg':'qdxorigin'}"; } }
上述代碼采用了 REST 風(fēng)格開發(fā),簡單模擬根據(jù) ID 查詢信息。
3、啟動項目
能夠明顯看到 Spring 的圖像,且在加載信息中看到了和 tomcat 相關(guān)的內(nèi)容,但是我們并沒有配置 tomcat ???這就是 SpringBoot 更方便的一點,它內(nèi)部自己給我們配置了 tomcat ,我們之后都無需再自己配置 tomcat 了。
4、使用 Postman 測試
與此同時,控制臺也獲取到了 ID 值。
三、SpringBoot VS Spring
通過練習(xí)入門案例,我們發(fā)現(xiàn)了,SpringBoot 內(nèi)部會給我們配置 tomcat ,我們無需再自己配置。
除此之外,在之前的 SSM 開發(fā)中,我們會自己在 pom.xml 文件中手動配置許多依賴,但是在 SpringBoot 中我們并沒有修改 pom.xml 文件中的任何內(nèi)容,僅僅在創(chuàng)建項目的時候勾選了 Spring Web,使得 SpringBoot 將我們需要的依賴配置好了。
在整合 SSM 時,我們還手動書寫了許多的配置類,但是 SpringBoot 中這些內(nèi)容統(tǒng)統(tǒng)都不需要我們自己配置了。
SpringBoot 還有許多非常便捷的地方,目前較為明顯的是上述三個優(yōu)化。
四、在官網(wǎng)中構(gòu)建工程
進(jìn)入官網(wǎng), 官網(wǎng)地址 。劃到后面,找到下圖,點擊 Spring Initializr (有沒有感覺很熟悉,在 IDEA 創(chuàng)建項目時是不是也是這個)。
看到下圖,有沒有感覺和我們使用 IDEA 創(chuàng)建項目時遇到的非常相似啊。其實使用 IDEA 工具創(chuàng)建也會走這一套流程。
在右邊區(qū)域添加依賴,搜索選擇添加的依賴。
同樣會在下面呈現(xiàn)所選擇的依賴。
全部都完成之后,點擊 GENERATE 創(chuàng)建項目。
創(chuàng)建完成之后會生成一個壓縮包,我們可以解壓之后,導(dǎo)入 IDEA 中開發(fā)使用。
通過瀏覽壓縮包中內(nèi)容會發(fā)現(xiàn)和我們通過 IDEA 創(chuàng)建的項目結(jié)構(gòu)是一模一樣的。 五、打包 SpringBoot 項目 在 pom.xml 文件中,提供有如下插件,所以我們可以使用 Maven 的 package 指令打包,完成后會在 target 目錄下生成對應(yīng)的 jar 包。
此時,在 target 文件夾中已經(jīng)能夠看到 jar 已經(jīng)打包好了,如果前端人員需要,可以將打包好的 jar 包拷貝給他,他可以直接運行調(diào)試自己的前端代碼。
前端人員拿到 jar 包后,在該位置輸入 cmd 進(jìn)入我們常說的小黑框。
輸入 java -jar 命令。
有沒有感覺到一些熟悉,沒錯,這和我們在 IDEA 中呈現(xiàn)的效果是一樣的。此時我們就可以訪問項目的所有資源了。
六、SpringBoot 是如何實現(xiàn)簡化開發(fā)的
前面說過,SpringBoot 是可以簡化 Spring 應(yīng)用開發(fā)的,通過入門案例我們也能夠明顯的感覺到使用 SpringBoot 框架開發(fā)的便利,那么它是如何簡化開發(fā)的呢?
這其中就不免需要介紹兩個非常重要的內(nèi)容。
1、啟動依賴
通過查看 pom.xml 文件中的代碼,我們不難發(fā)現(xiàn)有許多命名為 starter 的依賴。
這些依賴中又引用了許多其他 starter 依賴。
這也就告訴我們,在 SpringBoot 項目中,如果想要使用某個技術(shù),直接導(dǎo)入相應(yīng)的 starter 依賴就可以了,配置所需要的內(nèi)容在該 starter 依賴中都有,給我們節(jié)省了很大一部分精力。
2、引導(dǎo)類
當(dāng)工程創(chuàng)建完成后,都會自動提供一個引導(dǎo)類,該類是程序啟動的入口,當(dāng)我們想要自動程序時,直接運行 main 方法即可。
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
正式因為有了這些啟動依賴和引導(dǎo)類,我們就能夠?qū)W⒂跇I(yè)務(wù)代碼,而無需對一些配置工作而耗費精力,簡化開發(fā)。
七、切換 Web
服務(wù)器 通常情況下,我們都會使用 tomcat 作為項目的服務(wù)器,但是如果某天我們想要切換自己的服務(wù)器,該如何操作呢?
在此以切換為 jetty 服務(wù)器為例簡單演示下如何操作。
第一步,我們需要將 starter 依賴中自動配置的 tomcat 服務(wù)器排除掉,使其失效。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
此時我們再啟動工程,會發(fā)現(xiàn)打印的信息中找不到和 tomcat 相關(guān)的了。
第二步,導(dǎo)入 jetty 依賴。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
此時,再次啟動項目,看到了 jetty 相關(guān)打印信息,說明已經(jīng)成功切換了服務(wù)器
以上就是SpringBoot入門教程詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot入門的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解spring整合shiro權(quán)限管理與數(shù)據(jù)庫設(shè)計
這篇文章主要介紹了詳解spring整合shiro權(quán)限管理與數(shù)據(jù)庫設(shè)計,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05詳解Java?Synchronized的實現(xiàn)原理
談到多線程就不得不談到Synchronized,重要性不言而喻,今天主要談?wù)凷ynchronized的實現(xiàn)原理。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-09-09解決java文件流處理異常 mark/reset not supported問題
這篇文章主要介紹了解決java文件流處理異常 mark/reset not supported問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10java開發(fā)實現(xiàn)訂閱到貨通知幫我們買到想買的東西
這篇文章主要為大家介紹了java開發(fā)實現(xiàn)訂閱到貨通知幫我們買到想買的東西示例demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02java(包括springboot)讀取resources下文件方式實現(xiàn)
這篇文章主要介紹了java(包括springboot)讀取resources下文件方式實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09WebSocket整合SSM(Spring,Struts2,Maven)的實現(xiàn)示例
這篇文章主要介紹了WebSocket整合SSM(Spring,Struts2,Maven)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01