讀古今文學網 > Spring Boot實戰 > 前言 >

前言

在1964年的紐約世界博覽會上,沃特·迪士尼向世界介紹了三件有開創意義的東西:「小小世界」(it\'s a small world)、「與林肯先生共度的偉大時刻」(Great Moments with Mr. Lincoln)以及「文明演進之旋轉木馬」(Carousel of Progress)。1所有這三樣東西隨後都搬進了迪士尼樂園和迪士尼世界,你今天仍能看見它們。

1關於這屆世博會裡迪士尼相關的信息,詳見http://www.dwz.cn/2Hrvyh中的Disney influence部分。——譯者注

其中,我最喜歡的是「文明演進之旋轉木馬」,這大約也是沃特·迪士尼的最愛之一。這既是騎行,又是舞台表演,座位區域圍繞著中心區域旋轉,上演四場表演,講述了一個家庭在20世紀不同時代(分別是20世紀初、20世紀20年代、20世紀40年代和近年)的故事,突出了不同年代技術的進步。從手搖洗衣機,到電燈和收音機,到自動洗碗機和電視,再到電腦和聲控家電,無一不在述說著創新的故事。2

2關於這個遊樂設施,詳見http://www.yesterland.com/progress.html的介紹。——譯者注

在每幕表演中,父親(也是演出的敘述者)都會講述最新的發明,並帶上一句「這玩意兒不能更好了」,到頭來卻發現隨著技術的進步,它的確變得更好了。

比起這場舞台演出,Spring的歷史要短得多。但是對於Spring,我的感受和「演進老爹」(Progress Dad)對20世紀的體會相似。似乎每個Spring應用程序都讓開發者的生活更上一個台階,僅從Spring組件的聲明和織入方式就能看出端倪。讓我們來看看Spring歷史中的一些演化歷程。

  • Spring 1.0的出現徹底改變了我們開發企業級Java應用程序的方式。Spring的依賴注入與聲明式事務意味著組件之間再也不存在緊耦合,再也不用重量級的EJB了。這玩意兒不能更好了。

  • 到了Spring 2.0,我們可以在配置裡使用自定義的XML命名空間,更小、更簡單易懂的配置文件讓Spring本身更便於使用。這玩意兒不能更好了。

  • Spring 2.5讓我們有了更優雅的面向註解的依賴注入模型(即@Component@Autowired註解),以及面向註解的Spring MVC編程模型。不用再去顯式地聲明應用程序組件了,也不再需要去繼承某個基礎的控制器類了。這玩意兒不能更好了。

  • 到了Spring 3.0,我們有了一套基於Java的全新配置,它能夠取代XML。在Spring 3.1里,一系列以@Enable開頭的註解進一步完善了這一特性。終於,我們第一次可以寫出一個沒有任何XML配置的Spring應用程序了。這玩意兒不能更好了。

  • Spring 4.0對條件化配置提供了支持,根據應用程序的Classpath、環境和其他因素,運行時決策將決定使用哪些配置,忽略哪些配置。那些決策不需要在構建時通過編寫腳本確定了;以前會把選好的配置放在部署的包裡,現在情況不同了。這玩意兒不能更好了。

現在輪到Spring Boot了。雖然Spring的每個版本都讓我們覺得一切都不能更好了,但Spring Boot還是向我們證明了Spring仍然有巨大的潛力。事實上,我相信Spring Boot是長久以來Java開發歷程裡最意義深刻、激動人心的東西。

以歷代Spring Framework的進步為基礎,Spring Boot實現了自動配置,這讓Spring能夠智能探測正在構建何種應用程序,自動配置必要的組件以滿足應用程序的需要。對於那些常見的配置場景,不再需要顯式地編寫配置了,Spring會替你料理好一切。

選擇在構建時和運行時要包含在應用程序裡的庫,往往要花費不少工夫,而Spring Boot的起步依賴(starter dependency)將常用依賴聚合在一起,借此簡化一切。它不僅簡化了你的構建說明,還讓你不必苦思冥想特定庫和版本。

針對使用Groovy來開發Spring應用程序,Spring Boot的命令行界面提供了一個令人矚目的選項,它將Java應用程序開發過程中的噪聲降到最低,開發方式平易近人。有了Spring Boot CLI,就不再需要訪問方法了,不再需要諸如publicprivate之類的訪問修飾符,也不再需要分號或者return關鍵字。在許多場景中,import語句都可以去掉。因為你是在命令行裡以腳本方式運行應用程序,所以連構建說明都能免了。

Spring Boot的Actuator讓你能一窺應用程序運行時的內部工作細節,看看Spring應用程序上下文裡都有哪些Bean,Spring MVC控制器是怎麼與路徑映射的,應用程序都能取到哪些配置屬性,諸如此類。

Spring Boot為我們帶來了這麼多奇妙的特性,這玩意兒當然不能更好了!

本書中你將看到,Spring Boot著實讓Spring比以前更好了。我們將一同去瞭解自動配置、Spring Boot起步依賴、Spring Boot CLI和Actuator。我們還會去擺弄一下Grails的最新版本,它就是基於Spring Boot的。臨近末尾,你也許會覺得Spring不可能更好了。

如果說迪士尼的「文明演進之旋轉木馬」告訴了我們什麼事情,那就是當我們覺得什麼東西不可能更好了的時候,它一定會變得更好。Spring Boot的進步正在帶來越來越大的益處。真的難以想像Spring還能變得更好,但它肯定會更好。毫無疑問,Spring的前景總是美好的。