隨筆-72  評論-20  文章-0  trackbacks-1

          Spring 的核心是個輕量級容器(container),實現了IoC(Inversion of Control)模式的容器。Spring的目標是實現一個全方位的整合框架,在Spring框架下實現多個子框架的組合,這些子框架之間彼此可以獨立,也可以使用其它的框架方案加以替代,Spring希望提供一站式的框架整合方案。在某些情況下,利用Spring可以不必考慮設計模式。因為Spring 其實就是遵從了J2EE的設計模式。

          Spring框架具有以下特點:

          1.         面向接口的編程。面向接口的編程使開發者事先知道他們將利用對象的方法。在設計應用時利用接口對我們獲取實現的靈活性大有幫助。同時,利用接口使得各層之間的交互耦合性更為松散。

          2.         測試更為容易。利用測試驅動開發是快速開發高質量代碼的最佳途徑。它利用在編寫接口和實現之前先編寫客戶類(測試類)來驅動設計。諸如Eclipse這樣的主流IDE都允許在實現測試類的同時創建類和方法。Spring使得測試更加容易有如下兩個原因:1)可以在Junit測試用例中很容易的加載和利用 Spring管理的beans。這使得我們可以像平常一樣用任何客戶端與這些beans交互。2)類之間沒有綁定自己的依賴。這樣在測試類中可以忽略 Spring,只用設置模擬對象(mock objects)來處理依賴關系即可。

          3.         減少耦合。為了創建一個容易維護和擴展的應用,將代碼與特定的資源(例如,可能使用了針對于某個特定數據庫的SQL函數)緊密耦合是不明智的。當然,如果有合適的函數可以迅速的實現功能時,針對于某個特定數據庫通常是比較容易的。這種情況下,J2EE設計模式通常建議使用工廠模式來減少實現類與應用之間的耦合。

          4.         配置和綁定類之間的依賴關系。工廠模式使得我們可以輕松的從一個實現類切換到另一個實現類。接口和實現都可以配置在XML文件中并且可以方便的通過改變文件來改變實現類。

          5.         支持對象/關系映射的工具。利用支持ORM類的優點就是我們不再需要寫繁多的try/catch語句來捕獲API拋出的異常。Spring將這些異常封裝成為運行時的異常(runtime exceptions),這樣使得開發者可以在適當的時候捕獲發異常。

          使用Spring的優點:

          1.         Spring能消除在許多工程上對Singleton的過多使用。

          2.         Spring 能消除使用各種各樣格式的屬性定制文件的需要,在整個應用和工程中,可通過一種一致的方法來進行配置。

          3.         Spring能通過接口而不是類促進好的編程習慣,減少編程代價到幾乎為零。

          4.         Spring被設計為讓使用它創建的應用盡可能少的依賴于他的APIs。在Spring

          5.         應用中的大多數業務對象沒有依賴于Spring。

          6.         使用Spring構建的應用程序易于單元測試。

          7.         Spring為數據存取提供了一致的框架,不論是使用JDBC或O/R mapping產品(如Hibernate)。

          Spring 的上述優點,使得Spring 框架成為構建信息發布系統模型層的首選框架。在本課題的實現過程中,使用了Spring管理的Bean,大大減少了代碼的編寫量的同時,代碼質量也有很大的保證。面向接口的編程模式,使得測試同一個接口的不同實現變得容易,只需要簡單的修改Spring的配置文件,極大地減少了編寫測試代碼的量。 Spring的代理模式和面向方面編程的能力,使得攔截一個方法調用并在調用之前或者之后執行特定的操作變得簡單。課題實現過程中的粗話過濾利用了 Spring中面向方面的編程能力攔截信息插入操作,在插入操作執行之前進行粗話查詢和替換,從而實現了粗話過濾。在信息插入操作執行之后進行攔截,給相關的人員發送E-mail,以便于通知有事件發生。Spring中支持事務管理,同樣使用了攔截器模式,插入或者查詢操作執行過程中使用事務,保證了數據庫操作代碼的安全性,Spring中可以使用聲明式的事務管理。對事務的所有操作都在配置文件中進行配置,無須硬編碼到Java代碼中,使得底層的數據庫操作實現類只專注于正常情況下的數據庫的操作,其他的事情完全由Spring代理,降低了代碼編寫的難度和復雜度,并提高了代碼質量。


          posted on 2007-08-19 14:42 前方的路 閱讀(372) 評論(0)  編輯  收藏 所屬分類: 軟件架構
          主站蜘蛛池模板: 昌江| 于都县| 依安县| 吉隆县| 博爱县| 靖西县| 定结县| 织金县| 九江市| 长海县| 兴隆县| 宁南县| 浏阳市| 洪洞县| 理塘县| 肇东市| 神木县| 汕尾市| 循化| 天气| 太康县| 康马县| 太谷县| 长兴县| 嵩明县| 桃园市| 黑山县| 乳山市| 咸丰县| 车致| 通道| 和林格尔县| 肇庆市| 子洲县| 陇西县| 景洪市| 龙州县| 扬州市| 禄劝| 灌阳县| 诸城市|