我們有必要花時間瞭解spring boot嗎?

spring-cloud其他文章:
spring boot自動化配置原理
spring boot集成ActiveMQ
spring-cloud中eureka進行服務治理

spring已經足夠好了

現在來看,spring框架真的太好了,任何一個java開發用過之後都會像上癮一樣,愛不釋手。會在遇到新問題的時候,或者找到某一個方法的時候,都會去看一下spring是不是已經有同類型的支持了。

如果有的話,我會毅然決然的選擇spring。不是武斷,是自打spring誕生以來,他給人們的驚喜太多,給人們的信賴感、穩定感太多。打心底裏的信服,他們能做到的一定是一個不錯的選擇。

想想在沒有spring之前,我們都是怎麼做的吧!

對於一個經驗不怎麼豐富的開發者,總是在網絡上搜索各種可能的方法,嘗試,嘗試,再嘗試,可能經過幾天的焦灼和痛苦之後,終於找到了某種方法實現某種功能。

就算是對於開發老鳥,可能某些問題,已經知道解決方法,但是卻要不斷忍受什麼都要自己寫,什麼都要寫很多重複步驟的狀況。

比如數據庫查詢,使用jdbc需要5個步驟,其中我們最需要的是處理結果的步驟,需要自己關閉數據庫連接,需要處理事務的開啓、異常回滾。有了spring之後,就簡單了,直接集成ORM框架,數據庫結果自動映射成對象實例,連接管理、事務管理、查詢結果處理都不用操心了。

比如緩存需要寫先查詢緩存,不存在時再查詢接口這樣的邏輯。有了spring之後,可以直接@Cacheable註解或者xml配置就可以做到了。

比如定時任務,最初有了spring之後,可以直接@Scheduled註解或者xml配置一下就完成了。

可以舉的例子還有很多,spring的每一個擴展包,都是一份相關技術知識的打包奉送。spring真正強大,也是強大在開放以及在此基礎上實現的各種各樣的擴展包。

spring就是一份濃縮的智慧的結晶,是成百上千的優秀程序員的智慧結晶。它讓java世界的企業開發變得平易近人,變得輕鬆易得。

php、python們還是看不起java

spring已經這麼強大了,強大到所有的java程序員、java系統幾乎都離不開的地步了。爲什麼在php、python們看來java還是不如他們好呢?

php、python們的理由最多見的有兩個,我們也不得不認同。

一個是spring搭個企業級服務必須依賴一個容器,比如weblogic、tomcat、jetty、netty這些。還要配置web.xml、servlet.xml、bean.xml這些東西。

另外一個是類庫兼容的問題,由於java的開源特性,以及沒有一個統一的版本兼容管理。一旦想着升級spring類庫或者其他關鍵類庫,那麼與之關聯的類庫就需要更新,再與之關聯的類庫就出現了不兼容,進而也需要更新。更新的同時,又可能免不了的需要修改幾個deprecated的類。

我們的java能不能更好了呢?企業開發能不能再簡單一點?能不能再敏捷一點?

什麼是spring boot

spring的追求一定是大道至簡,讓java的開發變得更加簡單、容易。spring boot就是朝着這一追求更近了一步的天使,一個在spring基礎上的一整套實現。

最初,對spring boot沒有太多的好感,覺得它只不過是把java企業級應用必須用的servlet容器給幹掉了而已。覺得它做的只是解決了第一個被詬病的問題而已。

進一步接觸,纔有所感悟,原來spring boot是這麼強大的一個東西。像boot這個名字和它的圖標一樣,就像是一臺電腦的啓動按鈕,當你start之後,所有你需要的東西都準別好了。你需要做的,就是盡情享受現代科技的美妙。

spring boot最最核心和強大的地方是它的AutoConfiguration和ParentPom。

ParentPom裏面提供了java企業級開發絕大多數類庫的兼容版本版本號。需要升級spring,那麼升級parentPom好了,不兼容的類庫統統say byebye。當然了,某些deprecated的類還是需要自己去更換的。

AutoConfiguration能夠自動的按照工程的類型,以及引入的jar包來配置功能用到的所有東西。比如web工程,需要設置的那些xml,orm需要設置的DataResource、TransactionManager這些都已經自動配置好了。

如果,自動配置不是你想要的,或者你就是想用特別的配置。spring boot也提供了可配置點,來滿足特別的你。你可以把特別的配置卸載application.properties裏面,spring boot會以這裏的配置爲準(優先級高)。

有了spring boot之後,能簡單到什麼程度呢?要實現一個接口,只需要簡單兩步:1.創建spring boot項目;2.創建一個普通類,蓋上@RestController註解和@RequestMapping註解。

就是這麼簡單,就是這麼炫酷。然而,這還不是spring boot的全部。

它還爲生產環境提供了一組管理接口,比如服務健康檢查,服務各種維度狀態查看。不論是普通的企業服務,還是更靈活多變的雲服務,都已經提供了完美的融合以及簡化,簡直不能太省心。

spring cloud必須跨過的門檻

spring cloud整體是基於spring boot的,spring cloud實質上是把微服務常用的服務治理、消息總線、服務監控、配置中心、容錯、網關等選擇性的使用spring boot包裝起來,提供統一的使用方式。

有了這些用spring boot打包好的中間件、服務組件,我們就可以很快的構建自己的微服務了,而且五臟俱全。

既然boot是cloud的基礎,那麼,boot自然是必須不可的了。

怎麼從零開始熟悉spring boot

spring boot入門也相對簡單,spring boot提供了全面的在線文檔,也有一些中文的教材可以參考。

所謂萬事開頭難,難就難在不知道怎麼開始。計算機語言和類庫的開始如出一轍,都是從一個Hello World例子開始的。

spring boot創建第一個項目可以通過:https://start.spring.io/頁面直接創建工程,然後下載到本地,eclipse打開即可。

也可以在spring tool suit中使用New—> Spring Starter Project
或者IntelliJ IDEA中創建Spring Initializer項目。

要了解更多,也可以參考汪雲飛寫的《Java EE開發的顛覆者 Spring Boot 實戰》一書。

用慣了eclipse怎麼快速的創建spring boot工程

書中沒有說到eclipse怎麼創建spring boot項目,用慣了eclipse,受盡eclipse折磨,但又不願因改換門庭的你該怎麼辦?

eclipse需要安裝spring tool suit插件,安裝插件之後的創建就和spring tool suit一樣了。

要安裝sts插件也不是特別容易,筆者沒有嘗試離線安裝的方式,而是採用的eclipse marketplace的方式安裝。

中間有一個jar下載不到,多次嘗試之後,打開了shadow socks全局代理才下載成功了。

OK,入了門接下來就可以盡情和spring boot談情說愛啦。

發佈了141 篇原創文章 · 獲贊 140 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章