“Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.”
這是spring boot官方文檔上對spring boot的介紹,意思是說:spring boot可以方便的創(chuàng)建一個獨(dú)立運(yùn)行的,生產(chǎn)環(huán)境級別的基于spring的應(yīng)用,并且只要使用“Run as”即可啟動的應(yīng)用。它通過最小的復(fù)雜性使得應(yīng)用創(chuàng)建于spring平臺并引入依賴的第三方庫。絕大多數(shù)的spring boot應(yīng)用只需要很少的spring 配置。
按照原文翻譯是很蹩腳的,直白點(diǎn)說就是:spring boot可以讓你很方便的創(chuàng)建一個基于spring的應(yīng)用,配置簡單,啟動方便。
那么spring boot為什么說他自己是很簡單的,配置優(yōu)化的,啟動方便的呢?這顯然是對比傳統(tǒng)的創(chuàng)建spring應(yīng)用的方式得出來的。那么我們來回顧下,原始的創(chuàng)建spring 項目的缺點(diǎn)都有哪些?我們以創(chuàng)建一個傳統(tǒng)spring mvc項目為例:
1 至少要有兩個spring的配置文件:MVC配置文件和Application的配置文件
MVC配置:文件中配置的是spring mvc模塊所需要的一些配置,比如compoent-scan,視圖解析,攔截器等等,這個文件一般命名為springmvc-servlet.xml,這個文件需要配置在web.xml中
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Application配置文件:一般配置的是AOP,事務(wù),IOC的bean等等,一般也要在web.xml中指定
2 AOP,攔截器,事務(wù),MQ,數(shù)據(jù)源等等配置也是相當(dāng)麻煩,雖然有注解的方式,但是為了可讀性,我們一般還是會使用xml的配置文件方式,每種方式獨(dú)立一個配置文件,這又多出來好幾個配置文件
3 依賴管理:spring在2.5X版本后就做了分包,spring-context,spring-aop,spring-tx,spring-beans等等,粒度細(xì)化了,使得開發(fā)者項目依賴的時候復(fù)雜了,因為依賴的包太多,新項目搭建的時候,很難完整的引入,特別是一些傳遞性依賴的與本項目的依賴沖突的時候,那排除起來也是相當(dāng)頭大。
4 項目啟動:spring mvc項目一般同構(gòu)servlet容器啟動,而開發(fā)人員的servlet容器版本五花八門,當(dāng)然可以通過項目說明文件來約定統(tǒng)一的版本,但是我們都知道,當(dāng)手上有N多個項目并行的時候,不同項目的jdk版本要求,servlet容器版本要求都可能不一樣,開發(fā)人員總是會希望使用最近使用的這個容器版本,以免不停的切換。
先說這幾點(diǎn)吧,總結(jié)下,其實(shí)就是傳統(tǒng)的spring mvc項目配置繁瑣,依賴麻煩,啟動不傻瓜化。那么spring boot橫空出世就解決了以上這些問題,那么spring boot這么牛,那是不是可以說以后不會有人用spring mvc了呢?
答案肯定是否定的,spring boot的絕大部分特性與功能都是建立在傳統(tǒng)的spring 和spring mvc的基礎(chǔ)之上的??梢灶惐葹閭鹘y(tǒng)的spring和spring mvc就是jdbc,spring boot就是MyBatis或Hibernate。 現(xiàn)在大多數(shù)的項目都是使用MyBatis或Hibernate,而很少使用jdbc,但是如果你想了解MyBatis或Hibernate底層實(shí)現(xiàn),那么jdbc是最好的切入點(diǎn),最終會發(fā)下底層就是對jdbc的更合理,更開發(fā)的封裝。
關(guān)于spring boot是什么,就啰嗦到這里吧。
下面我們簡單看看spring boot版本的演進(jìn),為啥要了解其版本呢?從版本的演進(jìn)路線,我們可以了解其前世今生,可以看到他的迭代頻率,以及未來發(fā)展前景等等,從而對我們的技術(shù)選型有很大的幫助。
spring boot版本演進(jìn)地址:https://github.com/spring-projects/spring-boot/tags?after=v1.0.0.RC3
spring boot最早的一個版本是v0.5.0.M1,發(fā)布于2013年8月6日,第一個release版本
v1.0.0.RELEASE 發(fā)布于2014年4月1日,可見我們現(xiàn)在討論的其實(shí)是3年前的技術(shù)框架。在2014年,15年,16年,17年spring boot的版本都有很多的更新,且在2017年5月16日,發(fā)布了
v2.0.0.M1版本,進(jìn)入了v2.x。可以看出spring boot是一個充滿活力的框架。

好了,大家可以通過上述鏈接,了解更多的每個版本的演進(jìn)細(xì)節(jié)。