爲何Spring框架能這麼流行? 原

想要學習更多關於Spring框架在Java開發者中如此流行?看這篇文章可以學到更多!

file

Spring框架特性

Spring是用於應用開發中的一款強大,輕量級框架。更廣泛地說,你可以認爲Spring框架是一個定義良好的工具,它支持很多使用Java最爲編程語言的web應用程序。

在IT行業中的框架沒有出現之前,應用都是使用JEE標準在開發。通過這些標準,我們能部署一個應用到任何JEE應用服務上。但是,它有幾個問題,包括:

  • 代碼在應用的發展中變得非常複雜。

  • 系統的性能會受到應用複雜度的影響。

  • 組件的查找問題。

這些問題隨着Spring框架的引入得以解決。Spring框架因爲其模塊化的特徵在市場上脫穎而出。也就是說,它能被分成不同的模塊,每個模塊提供各自的功能。

Spring框架的更重要特性

i.輕量級

就其大小和功能而言,Spring框架是非常輕量級的。這是由於它的POJO實現,它並不強制要求它繼承任何類或實現任何接口。

ii.面向切面的編程(AOP)

這是Spring框架中的一個重要部分,面向切面的編程用來將橫切關注點(比如日誌,安全等)從業務邏輯和應用中分離開來。在接下來的文章中,你將在這更詳細的瞭解這一點。

iii.事務管理

這是用於統一多個事務管理API和協調Java對象的事務。而且,它不與J2EE環境綁定,並且和非容器環境一起使用。

iv.容器

Spring框架設計和管理應用程序對象的生命週期和配置

v.依賴注入

Spring框架的這個特性使得你可以開發鬆耦合的應用。因此,這些鬆耦合應用的單元測試變得非常容易。這也使得開發者可以根據自身的需要交換一些模塊。

vi.與其他框架的整合

這個框架的一個優點是它並試圖去解決已經解決的問題。它只是試圖通過它的框架去整合它們,爲更大問題提供了一個解決方案。比如,它可以包含IBATIS,Hibernate,Toplink等

Spring 5.0 特性

現在,自Rob Johnson在2003年引入Spring框架以來,主要的增強已經完成。在第一次版本發佈後,已經發布了幾個版本。截止目前,Spring5.x 版本已經上市。因此,讓我們來看看Spring 5.0的主要升級特性和增強,Java 8是所有編碼基礎的最低要求,JDK 9在運行時的兼容性,以及構建和測試套件:

file

a.JDK8 + 9 和JAVA EE 7 基線

Spring框架的代碼庫是基於Java 8的代碼級別。這個代碼級別通過推斷泛型提供了可讀性,代碼中直接提供了對Java 8的條件支持。現在,Spring模塊和Servlet3.1,jMS 2.0,JPA2.1,和Bean validation1.1都需要Java EE 7 API級別。最近的服務,比如Jetty9.3+ ,Tomcat8.5+ 和WildFly10+,已經被添加到spring 5.0。在運行時也增加了對JDK 9的兼容性,以及構建和測試套裝。

b.刪除類,方法和包

從Spring模塊中刪除了包mock.staticmock,以及對AnnotationDrivenStaticEntityMockingControl的支持。最低的要求是Tiles3和Hibernate5,這意味着包web.view.tiles2和form.hibernate3/orm.hibernate4下降了。Spring5.0同時撤銷了對Portlet,Velocity,XML Beans,Guava,JDO和JasperReports的支持。因此,如果需要上面組件,推薦使用Spring 4.3.x。對於Spring生態中常用的方法,許多這些廢棄的方法和類已經被刪除了。

c.核心容器增強

隨着Spring5.0的引入,在覈心容器中進行了重大升級。主要有:

i.JDK 8+的改進

  • 核心Spring框架接口中Java 8方法的一些聲明。

  • 使用JDK 7中的標準字符集。

  • 使用Java 8的高效參數方法訪問。

ii.JDK 9的準備工作

  • 使用修改後的異常處理,實現了構造函數初始化的一致性。

iii.XML 相關的升級

  • 非版本模式的XML命名空間簡化。

  • 不支持廢棄的特性和對最近XSD文件的解析。

  • 特定版本的聲明繼續支持,但是需要得到驗證。

d.響應式編程模型

Spring框架的最新版本在響應式編程模型上有重大改變。一個主要的變化是Spring core data緩存的使用,以及編碼器/×××抽象和Spring-web HTTP消息編×××實現(支持XML和JSON)。另外,新的WebClient和新的Spring Web Reactive模塊引入了對使用Servlet3.1的@Controller模型以及非servlet運行時容器(例如Undertow)的反應支持。

e.一般Web改進

在web改進中,使用MediaTypeFactory提供了對媒體類型解析的統一支持。另外,Spring框架提供了對完整的Serverl3.1的支持,版本5中提供了對Protobuf3.0的支持。

f.測試改進

隨着這個版本的引入,Spring框架的測試環境做了重大改變。

i.在Spring TestContext框架中完全支持Junit 5的Jupiter編程。

  • SpringExtension是Jupiter中幾個API擴展的一個實現,它爲TestContext框架的一個現有特性提供完整支持,支持使用@ExtendWith,SpringExtention.class。

  • @SpringJUintConfig,結合Jupiter中的@ExtendedWith和@ContextConfigurationfrom (一個TestContext框架)。

  • @SpringJunitWebConfig,一個聲明結合了Jupiter中的@ExtendedWith和@ContextConfiguration和一個TestContext框架的@WebAppConfiguration.

ii.在springTestContext框架中使用TestNG和JUnit5通過SpringRunner引入了一個新的測試執行回調方法。

iii.XMLUnit支持升級到2.2版本

結論

因此,在這篇Spring框架的教程中,你已經看到了Spring框架的各種各樣的特性。此外,在測試環境、web服務和與xml相關的代碼的升級已經在添加到了自之前的Spring 4框架到最新的Spring 5.x框架特性中。同樣,如果你有任何疑問,請在下面的評論部分留言!

給大家推薦一個程序員學習扣羣:863621962。羣裏有分享的視頻,還有思維導圖
羣公告有視頻,都是乾貨的,你可以下載來看。主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分佈式項目實戰學習架構師視頻。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章