Spring4概述性知識(一)

#Spring的歷史

  • 2004年發佈以第一個版本
  • 2006年從v1.0版本升級到v2.0(新增XML命名空間,AspectJ及Spring MVC等功能),2009年從v2.5升級到了v3.0,新增了SpEL,OXM,REST,驗證/格式化等功能,全面支持java5
  • 2013年從v3.0升級到了v4.0,新增了Groovy Bean配置,HTML5/WebSocket支持等功能,全面支持Java8.0
  • 2016 年發佈Spring Framework 5.0 里程碑版本(後續仍需學習)

#Spring帶來的好處 Spring提供了EJB類似服務的同時儘可能的簡化了開發,遵循了“好的涉及由於具體實現,代碼應該易於測試”這一個理念,帶給我們一個易於開發,便於測試且功能恰u你的開發框架,好處有如下幾點:

  • SpringIoC方便解耦,簡化開發。
  • AOP編程支持,實現了面向切面的編程,實現了OOP無法實現的功能。
  • 聲明式事務的支持。開發者可以從繁瑣的事務管理代碼中脫離出來,聲明式事務靈活的進行事務管理,提高開發效率和質量。
  • 方便程序的測試。可以用非容器依賴的編程方式進行幾乎所有的測試工作。測試不再是安規的操作,而是隨手可得的事情。
  • 方便集成各種優秀的框架。Spring不排斥各種優秀的框架
  • 降低Java EE API的使用難度。Spring對很對難用的Java EE API(如JDBC,JavaMail,遠程調用等)提供了一個薄層的封裝,通過Spring的簡單的封裝,這些API的調用就會很方便,極大的降低了使用的難度。
  • Java的源代碼式經典的學習範例。代碼的巧妙涉及,結構的清晰,處處體現大師級的水準。

#Spring體系結構 Spring的框架結構大致如下:

Spring框架結構

IoC

  • Spring核心模塊實現了IoC的功能,用配置的房間將類與類之間的依賴從代碼中脫離出來。IoC負責將類與類之間的創建,拼接,管理,獲取等工作。BeanFactory接口是Spring框架的核心接口,它實現了容器的許多核心的功能。

    Context模塊構建再核心模塊之上,拓展BeanFactory的功能,添加i18n國籍化,Bean生命週期控制,框架時間體系,資源加載透明化等多項功能。提供了企業級服務的支持,比如郵件服務,任務調度,JNDI獲取,EJB集成,遠程訪問等。ApplicationCtenxt是Context模塊的核心接口。

    表達式語言模塊是統一表達式語言的(Unifier EL)的一個拓展,該表達式語言用於查詢和管理運行期的對象,支持設置/獲取對象屬性,調用對象方法,操作數組,集合等。該模塊還提供了邏輯表達式運算,變量定義等功能,可以方便的通過表達式串和Spring IoC容器進行交互。

AOP

  • AOP是OOP之後,對編程思想影響極大的技術之一。AOP是進行橫切邏輯的編程思想,它開拓了考慮問題的思路。滿足AOP Alliance規範,整合了AspectJ這種AOP框架。Spring實現AOP編程有總舵的選擇。Java5引入了java。lang.instrument,允許再JVM啓動一個代理,通過核心代理類再運行期修改類的字節碼,改變一個類的功能,從而實現AOP的功能。

數據訪問和集成

  • 應用的核心問題是對數據的訪問和操作。數據形式有多種,如數據表,XML,消息等,每種數據形式都用於不同的數據訪問技術(如數據表的訪問及可以直接同JDBC,也可以是使用其他的ORM框架)

    Spring站在DAO的抽象層,建立一套面向DAO的脫衣的異常體系,將各種訪問疏忽的檢查型異常轉換爲非檢擦型異常,爲整合各種持久層框架提供基礎。其次,Spring通過模塊化技術對各種數據訪問技術進行薄層的封裝,將模式化的代碼隱藏起來,是數據訪問的程序得到大幅度的簡化。這樣Spring就建立起了和數據形式及訪問技術無關的統一的DAO,藉助AOP技術,Spring提供了聲明式事務的功能。

Web及遠程操作

  • 該模塊建立在Application Context模塊之上,提供了Web應用的各種工具類,如通過Listener或者Servlet初始化的Spring容器,將Spring容器註冊到Web容器中。該模塊還提供了多項面向Web的功能,透明化文件上傳,Velocity,FreeMarker,XSLT的支持。此外,Spring可以整合Struts,WebWork等MVC框架。

Web及遠程訪問

  • Spring自己提供了一個完整得類似於Struts得MVC框架--SpringMvc

WebSocket

WebSocket提供了一個在Web應用中高效得,雙向得通信,考慮了客戶端和夫妻之間得高頻和低延時消息交換。

#Spring4新特性

  • 全面支持了Java8.0
  • 核心容器的增強 支持泛型依賴注入 CgLib代理類的加入不需要提供空參構造函數 在基於Java的配置裏面添加@Descriotion,@Conditional實現Bean的田間過濾,@Lazy註解解決Bean驗實依賴注入,支持Bean被注入List或者Array是可以使用@Ordered排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章