欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

“Don't Reinvent the Wheel”這句話,你從哪兒聽來的?

admin
2018年9月13日 10:20 本文熱度 7693

這事還是發生在 16 年前。

在 Java EE 和 EJB 大行其道的時候,一個學音樂的小伙子公然吐槽 EJB 太過臃腫,絕大多數的 J2EE 應用根本不需要 EJB。

為了證明自己獨特的想法,這位小伙子在當年出了一本書,在書中吐槽指出了 Java EE 和 EJB 組件框架中存在的一些主要缺陷,并提出了一個基于 Java 類和依賴注入的更簡單的解決方案。

更有意思的是,書中展示了如何在不使用 EJB 的情況下構建高質量、可擴展的在線座位預留系統。

為了構建應用程序,他編寫了超過 30,000 行的基礎結構代碼,項目中的根包命名為 com.interface21,所以人們最初稱這套開源框架為 interface21。

在這本書發布后,一對一的 J2EE 設計和開發一炮而紅。書中免費提供的大部分基礎架構代碼都是高度可重用的。

2003 年,這位小伙子和朋友在此框架的基礎上開發了一個全新的框架命名為 Spring。

當時,據他們介紹 Spring 是傳統 J2EE 新的開始,之后 Spring 發展進入快車道,在這十幾年中,不斷發展也不斷紅火起來。

2004 年 03 月,發布 Spring 1.0。

2006 年 10 月,發布 Spring 2.0。

2007 年 11 月,更名為 SpringSource,同時發布了 Spring 2.5。

2009 年 12 月,發布 Spring 3.0。

2013 年 12 月,發布 Spring 4.0。

2017 年 09 月,發布  Spring 5.0。

而這個小伙子就是 Rod Johnson ,他在 IT 界大展宏圖之前,早已是一個擁有音樂學博士學位的跨界奇才。


Don''t Reinvent the Wheel

「不要重復造輪子」,這是 IT 圈的人經常聽到的一句諺語,很多 Leader 常把這句話掛在嘴邊。

最直接地理解是:有的項目或功能,別人已經做過了,我們需要用的時候,直接拿來用就可以,并不需要重新發明創造。

Rod Johnson 明確地告知我們, Spring 就是基于「Don''t Reinvent the Wheel」原則做起來的。

這也是吐槽 EJB 的關鍵點,于是 Spring 和這句諺語在全世界范圍內逐漸火了起來。


Spring 是「配置地獄」?

多年以來,Spring 平臺飽受非議的一點就是大量的 XML 配置以及復雜的依賴管理。

隨著使用 Spring 進行開發的個人和企業越來越多,Spring 也慢慢從一個單一簡潔的小框架變成一個大而全的開源軟件。

Spring 的邊界不斷進行擴充,到了后來 Spring 幾乎可以做任何事情,市面上主流的開源軟件、中間件都有 Spring 對應組件支持,人們在享用 Spring 的便利之后,也遇到了一些問題。

Spring 每集成一個開源軟件,就需要增加一些基礎配置,隨著開發項目的逐漸龐大,往往需要集成很多開源軟件。

后期使用 Spring 開發大型項目需要引入很多配置文件,導致配置工作難以理解且出錯率高,到了后來人們甚至稱 Spring 為配置地獄。

在 2013 年的 SpringOne 2GX 會議上,Pivotal 的 CTO Adrian Colyer 回應了這些批評,并且特別提到該平臺將來的目標之一就是實現免 XML 配置的開發體驗。

這就是 Spring Boot 產生的原因之一,但 Spring Boot 所實現的功能超出了這個任務的描述,開發人員不僅不再需要編寫 XML,而且在一些場景中甚至不需要編寫繁瑣的 import 語句。

在微服務的概念也慢慢興起,快速開發微小獨立的應用變得更為急迫,Spring 剛好處在這樣一個交叉點上。

于 2013 年初啟動了 Spring Boot 項目的研發。2014 年,Spring Boot 伴隨著 Spring 4.0 誕生發布了第一個正式版本。

Spring Boot 并不是要成為 Spring 平臺里面眾多「Foundation」層項目的替代者。

Spring Boot 的目標不在于為已解決的問題域提供新的解決方案,而是為平臺帶來另一種開發體驗,從而簡化對這些已有技術的使用。

對于已經熟悉 Spring 生態系統的開發人員來說,Spring Boot 是一個很理想的選擇。

對于采用 Spring 技術的新人來說,Spring Boot 提供一種更簡潔的方式來使用這些技術。


簡單才是編程之美

正是因為 Spring Boot 簡化的配置和眾多的 Starters 才讓 Spring Boot 變得簡單、易用、快速上手。

也可以說正是約定優于配置的思想徹底落地才讓 Spring Boot 走向輝煌。

Spring Boot 約定優于配置的思想讓 Spring Boot 項目非常容易上手,讓編程變得更簡單,其實編程本該很簡單,簡單才是編程的美。

約定優于配置(Convention Over Configuration),也稱作按約定編程,是一種軟件設計范式,旨在減少軟件開發人員需做決定的數量、獲得簡單的好處,而又不失靈活性。

本質是說,開發人員僅需規定應用中不符約定的部分。例如,如果模型中有個名為 User 的類,那么數據庫中對應的表就會默認命名為 user。

只有在偏離這一約定時,例如將該表命名為“user_info”,才需寫有關這個名字的配置。

在 Spring 體系中,Spring Boot JPA 就是約定優于配置最佳實現之一。

不需要關注表結構,我們約定類名即是表名,屬性名即是表的字段。

String 對應 varchar,long 對應 bigint,只有需要一些特殊要求的屬性,我們再單獨進行配置,按照這個約定我們可以將以前的工作大大簡化。

Spring Boot 體系將約定優于配置的思想展現得淋漓盡致,小到配置文件、中間件的默認配置,大到內置容器、生態中的各種 Starters 無不遵循此設計規則。

Spring Boot 鼓勵各軟件組織方創建自己的 Starter,創建 Starter 的核心組件之一就是 autoconfigure 模塊,也是 Starter 的核心功能,在啟動的時候進行自動裝配,屬性默認化配置。


Spring、Spring Boot 和 Spring Cloud 的關系

Spring 最初核心的兩大核心功能 Spring IoC 和 Spring Aop 成就了 Spring。

Spring 在這兩大核心功能上不斷地發展,才有了 Spring 事務、Spring MVC 等一系列偉大的產品。

最終成就了 Spring 帝國,到了后期 Spring 幾乎可以解決企業開發中的所有問題。

Spring Boot 是在強大的 Spring 帝國生態基礎上面發展而來,發明 Spring Boot 不是為了取代 Spring,是為了讓人們更容易的使用 Spring。

所以說沒有 Spring 強大的功能和生態,就不會有后期 Spring Boot 的火熱。

Spring Boot 使用約定優于配置的理念,重新重構了 Spring 的使用,讓 Spring 后續的發展更有生命力。

Spring 并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來。

通過 Spring Boot 風格進行再封裝并屏蔽掉復雜的配置和實現原理,最終給開發者提供了一套簡單易懂、易部署、易維護的分布式系統開發工具包。

Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性巧妙地簡化了分布式系統基礎設施的開發。

服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用 Spring Boot 的開發風格做到一鍵啟動和部署。

Spring Cloud 是為了解決微服務架構中服務治理而提供的具備一系列功能的開發框架,并且 Spring Cloud 是完全基于 Spring Boot 而開發。

Spring Cloud 利用 Spring Boot 特性整合了開源行業中優秀的組件,整體對外提供了一套在微服務架構中服務治理的解決方案。

綜上我們可以這樣來理解,正是由于 Spring IoC 和 Spring Aop 兩個強大的功能才有了 Spring。

Spring 生態不斷的發展才有了 Spring Boot,使用 Spring Boot 讓 Spring 更易用更有生命力,Spring Cloud 是基于 Spring Boot 開發的一套微服務架構下的服務治理方案。


總結

Spring Boot 誕生一方面是因為 Spring 自身發展所遇到的問題,另一方面在微服務思想誕生之際,急需要一款快速開發工具來實現微服務技術落地,在這樣的背景下誕生了 Spring Boot。

Spring Boot 整體的設計思想是:約定優于配置。依賴此設計思路,Spring Boot 進行了大刀闊斧的改革,讓開發、測試、部署更為便捷。

眾多的 Starters 成就了 Spring Boot 的發展,讓使用 Spring Boot 開發項目變得更加簡單。


延伸閱讀:

1. 精通 Spring Boot 42 講

2. Spring Boot 2.0 快速入門(圖文教程)

3. 聊聊 Spring Boot 2.x 那些事兒

4. Spring 團隊撰寫的方法和技巧指南


該文章在 2018/9/13 10:20:45 編輯過
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved