javascript
Spring Boot 为什么这么火火火火火火?
沒錯 Spring Boot 越來越火了,而且火的超過了我的預期,作為一名行走一線的 Java 程序員,你可能在各個方面感受到了 Spring Boot 的火。
Spring Boot 的火火火火火火
技術社區 Spring Boot 的文章越來越多;Spring Boot 相關的圖文、視頻課程越來越多;使用 Spring Boot 的互聯網公司越來越多;現在出去面試 Java 工程師, Spring Boot 已經成了必問的內容。
一切都在證明,Spring Boot 已經成為了 Java 程序員必備的技能。并且可以預見的是未來 Spring Boot 的發展還會更好。
那我個人是如何感受到這一點呢?
三年前寫的一個 Spring Boot 入門的文章,單篇文章閱讀量超過百萬!在百度指數上搜索 Spring Boot 關鍵字,可以看到一個氣勢如虹的增長曲線。
2016年,在 Github 上寫了一個 Spring Boot 的開源項目,現在竟有 15000+ Star,6600 + Fork ,在 Github 上 Star 排名今次于 Spring Boot 官方。
項目名稱:spring-boot-examples??
項目地址:
https://github.com/ityouknow/spring-boot-examples
注:這個開源項目還有很多國際友人參與貢獻。
Spring 官方也特別特別重視 Spring Boot ,直接將 Spring Boot 擺放到官網第一的位置上來。
Spring Boot 為什么這么火
作為一個學習使用三年多 Spring Boot 的程序員,我來試著從我的角度來給大家聊聊 Spring Boot 為什么這么火,可以在短短幾年內給 Java 程序員帶來這么大的變革。
01.?從設計理念談起
要說到 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 的設計,也借鑒了約定優于配置的思想,很多組件都是在啟動時,默認提供了其相關的功能,可以讓我們的使用到達很少配置或者零配置。
02.?Spring Boot 的 Starter 機制
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 ,如此多的“開箱即用” 的依賴模塊,讓我們在日常開發中“拿來即用”,以便更加快速和高效專注于業務開發。
03.?Spring Boot 的豪華開發團隊
我們經常會看到在介紹 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 背后豪華的研發團隊了》。
04.?有個好干爹
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 中文社區的所有學習資料,地址: http://springboot.fun/。
以上便是我個人對 Spring Boot 為什么這么火的一些淺薄見解,大家是怎么認為的呢,歡迎給我留言。
作者簡介:純潔的微笑,一個有故事的程序員。曾在互聯網金融,第三方支付公司工作,現為一名自由職業者,和你一起用技術的角度去看這個世界。我的個人微信號puresmile2,歡迎大家找我聊天,記錄你我的故事。
推薦閱讀
* ?《曾被騰訊高價收購,曾經的論壇王者Discuz! 落幕了》
* ?《這個社會不缺聰明人,稀缺的是善良》
* ?《3年,閱讀量100萬+,Github Star 15000+》
< END >
總結
以上是生活随笔為你收集整理的Spring Boot 为什么这么火火火火火火?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图标设计,制作一款紫色的树叶水滴怪兽图标
- 下一篇: 什么是3gp格式?