從根本上來說Spring Boot就是一些庫的集合,是一個基於「約定優於配置」的原則,快速搭建應用的框架。本質上依然Spring,在這之上幫咱們省去了不少樣板化的配置,使得咱們可以更專一於應用程序功能的開發。java
SpringBoot將不少魔法帶入了Spring應用程序的開發之中,其中最重要的是如下四個核心web
自動配置:針對常見的應用功能,SpringBoot自動提供相關的配置,減小用於樣板化配置的時間spring
起步依賴:指定基於功能的依賴,用更大粒度的依賴來下降依賴的複雜度服務器
命令行界面:這是SpringBoot的可選特性,藉此你只須要寫代碼就能完成完整的應用程序,無需傳統項目構建網絡
Actuator:讓你可以深刻運行中的SpringBoot應用程序一探究竟app
爲了體現SpringBoot的優點,咱們先來看看若是使用Spring開發一個簡單的Hello World Web應用程序,咱們須要作的事情:框架
一個項目結構,其中有一個包含必要依賴的Maven或者Gradle構件文件,最起碼要有Spring MVC和Servlet API這些依賴spa
一個web.xml文件(或者一個WebApplicationInitializer實現),其中聲明瞭Spring的DispatcherServlet命令行
一個啓用Spring MVC的Spring配置xml
一個控制器類,以"Hello World"響應HTTP請求
一個用於部署應用程序的Web應用服務器,好比Tomcat
能夠看到上面一系列的事中只有編寫控制器是和HelloWorld功能相關的,雖然現代的IDE也能幫咱們簡化掉一些步驟,可是Spring相關的配置就算從別的工程拷貝也仍是逃不了這一步。
接下來讓咱們來看下用Spring Boot是什麼樣的狀況。
你上次在超市或大型零售商店本身推開門是何時?大多數大型商店都安裝了帶感應功能的自動門,雖然全部門都能讓你進入建築物內,但自動門不用你動手推拉。 與之相似,不少公共場所的衛生間裏都裝有自動感應水龍頭和自動感應紙巾機。雖然沒有超市自動門這麼普及,但這些設施一樣對你沒有太多要求,能夠很方便地出水和紙巾。 我敢打賭你也能想出無數例子,證實設備讓現代生活更加自動化,而不是增長障礙。
下面經過一個例子來展現Spring Boot是如何開箱即用的。 依然是Hello World Web項目,咱們來看下如何用InteliJ IDEA來建立。 點擊IDEA的File-New-Project...,選擇左邊選項卡中的Spring Initializr,能夠看到以下界面。
使用默認的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工程。
網易雲新用戶大禮包:https://www.163yun.com/gift
本文來自網易雲社區,經做者金港生受權發佈。