沒錯 Spring Boot 愈來愈火了,並且火的超過了個人預期,做爲一名行走一線的 Java 程序員,你可能在各個方面感覺到了 Spring Boot 的火。html
技術社區 Spring Boot 的文章愈來愈多;Spring Boot 相關的圖文、視頻課程愈來愈多;使用 Spring Boot 的互聯網公司愈來愈多;如今出去面試 Java 工程師, Spring Boot 已經成了必問的內容。git
一切都在證實,Spring Boot 已經成爲了 Java 程序員必備的技能。而且能夠預見的是將來 Spring Boot 的發展還會更好。程序員
那我我的是如何感覺到這一點呢?github
三年前寫的一個 Spring Boot 入門的文章,單篇文章閱讀量超過百萬!在百度指數上搜索 Spring Boot 關鍵字,能夠看到一個氣勢如虹的增加曲線。面試
2016年,在 Github 上寫了一個 Spring Boot 的開源項目,如今竟有 15000+ Star,6600 + Fork ,在 Github 上 Star 排名今次於 Spring Boot 官方。spring
項目名稱:spring-boot-examples編程
項目地址:緩存
github.com/ityouknow/s…springboot
注:這個開源項目還有不少國際友人蔘與貢獻。微信
Spring 官方也特別特別重視 Spring Boot ,直接將 Spring Boot 擺放到官網第一的位置上來。
做爲一個學習使用三年多 Spring Boot 的程序員,我來試着從個人角度來給你們聊聊 Spring Boot 爲何這麼火,能夠在短短几年內給 Java 程序員帶來這麼大的變革。
要說到 Spring Boot 爲何這麼火,就必須得聊聊 Spring Boot 的設計理念,正是此設計理念奠定了Spring Boot 開發設計的基準,讓 Spring Boot 走到了今天。
那 Spring Boot 的設計理念是什麼呢?它就是約定優於配置(convention over configuration)。
約定優於配置並非一個新概念,它是一種軟件設計範式,很早就應用在軟件架構設計中,它的做用是減小軟件開發人員需作決定的數量,得到簡單的好處,而又不失靈活性。
只是 Spring Boot 讓這個設計理念上升了一個層次,Spring Boot 不止在某個功能上實現此設計理念,而是整個軟件體系都在踐行約定優於配置。
Spring Boot 體系將約定優於配置的思想展示得淋淋盡致,小到配置文件,中間件的默認配置,大到內置容器、生態中的各類 Starters 無不遵循此設計規則。
Spring Boot Jpa 80% 大部分查詢功能都以約定的方式給與提供,另外 20% 複雜的場景,提供另外的技術手段來解決,典型的約定優於配置的實現。
Spring Boot Starter ,在項目啓動的時候,根據約定信息對組件進行加載、初始化。所以項目中引入了對於的 Starter 以後,就能夠到達開箱即用的效果。
甚至 Spring Cloud 的設計,也借鑑了約定優於配置的思想,不少組件都是在啓動時,默認提供了其相關的功能,可讓咱們的使用到達不多配置或者零配置。
Spring Boot Starter 是 Spring Boot 的 星辰大海。
正是由於豐富的 Spring Boot Starter ,讓 Spring Boot 征服了使用各個開源軟件的開發者,只要 Spring Boot Starter 指向哪一個開源軟件,就會讓某個開源軟件變得異常好用。
這真的是這樣,有一種神筆馬良的感受(誇張了一點)。
那什麼是 Spring Boot Starter 呢?
在 Spring Boot 中,Starter 是爲快速應用開發提供「一站式服務」的依賴(Dependency)。Starter 使得開發人員在開始編寫新的模塊時不須要拷貝樣板式的配置文件、編寫樣板式的代碼,只須要提供最簡單的配置便可開始編程。
Spring Boot Starter 有兩個核心組件:自動配置代碼和提供自動配置模塊及其它有用的依賴。也就意味着當咱們項目中引入某個 Starter ,即擁有了此軟件的默認使用能力,除非咱們須要特定的配置,通常狀況下我僅須要少許的配置或者不配置便可使用組件對應的功能。
Spring Boot 由衆多 Starter 組成,隨着版本的推移 Starter 家族成員也與日俱增。在傳統 Maven 項目中一般將一些層、組件拆分爲模塊來管理,以便相互依賴複用,在 Spring Boot 項目中咱們則能夠建立自定義 Spring Boot Starter 來達成該目的。
Spring Boot Starter 統一了使用不一樣軟件的編程體驗。
在沒有使用 Spring Boot Starter 以前,咱們須要按照每一個開源軟件的特性,將對應的組件包集成到咱們的開發項目中,由於每一個組件的設計理念和開發團隊都不一致,所以會有不少不一樣的調用風格在咱們的項目中。
Spring Boot 強大到不少技術社區都主動提供了對應的 Starter 組件,好比 MyBatis 、Apache Camel、Apache CXF 等等。隨着 Spring Boot 的發展 Starter 組件會愈來愈多。
Spring Boot 很是強大的緣由之一就是提供了大量的 Spring Boot Starter ,如此多的「開箱即用」 的依賴模塊,讓咱們在平常開發中「拿來即用」,以便更加快速和高效專一於業務開發。
咱們常常會看到在介紹 Spring Boot 的時候有這麼一句:Spring Boot 是由 Pivotal 團隊提供的全新框架。由此咱們得知 Spring Boot 是由 Pivotal 團隊所研發,那麼 Pivotal 團隊究竟是一個什麼樣的團隊呢?其實這裏的 Pivotal 團隊是指 Pivotal 公司。
Pivotal 公司介紹:致力於「改變世界構造軟件的方式(We are transforming how the world builds software)」,提供雲原生應用開發 PaaS 平臺及服務,幫助企業客戶採用敏捷軟件開發方法論,從而提升軟件開發人員工做效率、減小運維成本,實現數字化轉型、IT 創新,並最終實現業務創新。
Pivotal 公司可謂是大牛雲集,公司研發的產品有: Spring 以及衍生框架、緩存中間件 Redis、消息隊列框架 RabbitMQ、數據引擎產品 Greenplum,還有 Tomcat、Groovy 裏的一些頂級開發者,DevOps 理論的提出者都在這個公司。
2016 年風靡全球的雲原生理念亦是 Pivotal 公司提出,美國硅谷著名的精益化創業書籍的做者 Eric Ries 也加入了 Pivotal公司。Spring Boot 爲何如此的優秀,正是由於背後有這些全球的頂級開發者。
Pivotal 公司的背後實際上是一場商業併購大片,有不少著名的公司在其身後,戴爾、Spring、EMC、VMware 等等,詳情你們開源看這篇文章:《是時候給你們介紹 Spring Boot/Cloud 背後豪華的研發團隊了》。
Spring Boot 的乾爹是誰呢?毫無疑問就是 Spring 了。有圖爲證,看下面:
Spring Boot 徹底依賴 Spring 來開發,發明 Spring Boot 也是爲了讓你們更好的使用 Spring,而不是消滅 Spring ,因此說沒有 Spring 這個乾爹,就沒有 Spring Boot 。
固然 Spring Boot 不只是基於 Spring 開發這麼簡單,Spring Boot 徹底繼承了 Spring 乾爹的聲譽,說實話若是沒有 Spring 這個老幹爹十多年來打拼下來的天氣,哪有 Spring Boot 今天來的風光。
2002 年的時候, Rod Johnson 可能也沒有想到本身開創的一個小開源軟件,能夠發展到今天這麼輝煌的一刻。到了今天,若是一個 Java 程序員說本身不知道 Spring ,那估計會把他看成外星人吧。
Spirng 當時以 IoC 和 Aop 開始發家,一開始的目標只是想幹掉 EJB 這個龐然大物,可是隨着時間的發展,Spring 開始了一路的逆襲之路,在2010年的時候 Spring 仍是 SSH 三大框架之一,到了今天 Spring 要說本身是老二,還這沒有人敢說本身是第一。
正是由於 Spring 在 Java 社區中有如此強大的影響力,因此在 Spring Boot 一出生的時候,就受到了廣大社區愛好者的關注、使用、寫教程、貢獻代碼、提 Bug。正是由於龐大的開源愛好者,才一塊兒反鋪 Spring Boot ,讓 Spring Boot 發展這麼快,這麼好。
若是你想系統的學習 Spring Boot ,給你們推薦一個 Spring Boot 中文索引,收集了 Spring Boot 中文社區的全部學習資料,地址: springboot.fun/。
以上即是我我的對 Spring Boot 爲何這麼火的一些淺薄看法,你們是怎麼認爲的呢,歡迎給我留言。
做者簡介:純潔的微笑,一個有故事的程序員。曾在互聯網金融,第三方支付公司工做,現爲一名自由職業者,和你一塊兒用技術的角度去看這個世界。個人我的微信號 puresmile2,歡迎你們找我聊天,記錄你個人故事。