本文來自網易雲社群
Spring Boot是什麼
從根本上來講Spring Boot就是一些庫的集合,是一個基于“約定優于配置”的原則,快速搭建應用的架構。本質上依然Spring,在這之上幫我們省去了很多樣闆化的配置,使得我們能夠更專注于應用程式功能的開發。
Spring Boot精要
SpringBoot将很多魔法帶入了Spring應用程式的開發之中,其中最重要的是以下四個核心
- 自動配置:針對常見的應用功能,SpringBoot自動提供相關的配置,減少用于樣闆化配置的時間
- 起步依賴:指定基于功能的依賴,用更大粒度的依賴來降低依賴的複雜度
- 指令行界面:這是SpringBoot的可選特性,借此你隻需要寫代碼就能完成完整的應用程式,無需傳統項目建構
- Actuator:讓你能夠深入運作中的SpringBoot應用程式一探究竟
從Spring開始
為了展現SpringBoot的優勢,我們先來看看如果使用Spring開發一個簡單的Hello World Web應用程式,我們需要做的事情:
- 一個項目結構,其中有一個包含必要依賴的Maven或者Gradle構件檔案,最起碼要有Spring MVC和Servlet API這些依賴
- 一個web.xml檔案(或者一個WebApplicationInitializer實作),其中聲明了Spring的DispatcherServlet
- 一個啟用Spring MVC的Spring配置
- 一個控制器類,以"Hello World"響應HTTP請求
- 一個用于部署應用程式的Web應用伺服器,比如Tomcat
可以看到上面一系列的事中隻有編寫控制器是和HelloWorld功能相關的,雖然現代的IDE也能幫我們簡化掉一些步驟,但是Spring相關的配置就算從别的工程拷貝也還是逃不了這一步。
接下來讓我們來看下用Spring Boot是什麼樣的情況。
Spring Boot開箱即用
你上次在超市或大型零售商店自己推開門是什麼時候?大多數大型商店都安裝了帶感應功能的自動門,雖然所有門都能讓你進入建築物内,但自動門不用你動手推拉。 與之類似,很多公共場所的衛生間裡都裝有自動感應水龍頭和自動感應紙巾機。雖然沒有超市自動門這麼普及,但這些設施同樣對你沒有太多要求,可以很友善地出水和紙巾。 我敢打賭你也能想出無數例子,證明裝置讓現代生活更加自動化,而不是增加障礙。
下面通過一個例子來展示Spring Boot是如何開箱即用的。 依然是Hello World Web項目,我們來看下如何用InteliJ IDEA來建立。 點選IDEA的File-New-Project...,選擇左邊頁籤中的Spring Initializr,可以看到如下界面。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLzMWY3Y2Y1UTY0Q2MtQzM5IWLlJTN00iZykzNtEmZwUTY2IGZ2QjMxETM0IDOwgTMwIzLcRXZrNWdi1SZ0l2ciV2dtQWdvx2YvwVbvNmLlNXYlRXZu5ycv52Lc9CX6MHc0RHaiojIsJye.png)
使用預設的https://start.spring.io,這将會連接配接網絡,查詢Spring Boot目前可用版本群組件清單。(目前時間用的是Spring Boot的2.0.0.RELEASE)
Next-輸入項目資訊-Next,來到選擇起步依賴界面,如下:
對于一個簡單的Hello World Web項目來說,這裡隻用勾選Web即可(我在這裡另外勾選了Thymeleaf,在視窗的最右邊可以看到)。 在這個界面可以看到Spring Boot為我們提供的大量的起步依賴。我們所勾選的web會為我們注入Web相關的所有依賴,省去我們自己配置依賴的時間。
再點選一次Next工程就建立完成了,等待下載下傳相關的Maven依賴(第一次所花費的時間可能比較久)和IDEA建立索引。
建立完成後,項目結構如下圖所示:
是一個常見的Maven項目結構,比較特别的是Spring Boot為我們自動生成了2個檔案,application.properties和BlogDemoApplication.java。
application.properties是Spirng Boot預設的配置檔案,當期是個空檔案,現在不用理會後面會細講。
BlogDemoApplication.java是Spring Boot自動生成的啟動類。有了這個類,現在這個項目已經是一個可以啟動的Web項目了,雖然還沒有任何控制器,我們依然可以試着通路預設端口8080。 如果IDEA沒有自動建立啟動配置,可以自行到Run/Debug Configurations裡添加。添加時選擇Spring Boot,在右邊選框的"Main class"中選擇自動生成的啟動類,如下:
點選運作後,通路8080端口将得到Spring Boot預設的錯誤頁:
接着就可以開發我們的功能了——Hello World。
@Controller@RequestMapping("/demo")public class HelloWorldController { @RequestMapping("/hello") @ResponseBody
public String hello(){ return "hello";
}
}
很簡單一個Controller,最後再次啟動項目,已經能愉快的hello了!
小結
回顧一下,去掉啰嗦的介紹,實際上的操作隻有點點點、輸入項目名、再編寫一下Controller就完成了一個Hello World。仿佛回到了初學Java的年代,那時候還是Eclipse,也是點點點、輸入項目名、然後編寫一個main方法控制台輸出一個hello。步驟相似,然而這次得到的已然是一個擁有衆多Spring特性的一個Web工程。
相關閱讀:SpringBoot入門(一)——開箱即用
SpringBoot入門(二)——起步依賴
SpringBoot入門(三)——入口類解析
SpringBoot入門(四)——自動配置
SpringBoot入門(五)——自定義配置
網易雲新使用者大禮包:https://www.163yun.com/gift
本文來自網易雲社群,經作者金港生授權釋出。