1. 程式人生 > >Spring框架學習(一)

Spring框架學習(一)

1.什麼是Spring框架?

Spring是一個開源的控制反轉(Inversion of Control , IOC)和麵向切面(AOP)的容器框架,它的主要目的是簡化企業開發。

2.Spring框架架構圖

(1)Spring Core

Spring框架最基礎的部分,提供依賴注入來實現容器對Bean的管理,最基本的概念是BeanFactory,它是Spring應用的核心。BeanFactory是工廠模式(用工廠方法代替new方法)的一個實現,它使用IOC獎應用配置和依賴說明從實際的應用程式碼中分離開來。

(2)Spring Context

核心模組的BeanFactory使Spring成為一個容器,而上下文模組使它成為一個框架。這個模組擴充套件了BeanFactory的概念,增加了對國際化訊息,事件傳播以及驗證的支援。

另外,據介紹,這個模組還提供許多企業服務,例如電子郵件,JNDI訪問,EJB整合,遠端以及時序排程服務,對模板框架比如Velocity和FreeMarker整合的支援

(3)Spring AOP

Spring在它 的AOP模組提供了對面向切面程式設計的豐富支援。Spring的AOP支援AOP聯盟定義的API。Spring的AOP模組也將元資料程式設計引入了Spring。

(4)Spring DAO

以前使用JDBC經常導致重複的程式碼(取得連線,建立語句,處理結果集,關閉連線),Spring的JDBC和DAO模組抽取了這些重複的程式碼,因此可以保持資料庫的訪問程式碼乾淨簡潔,並可以防止因關閉資料庫資源失敗而引起的問題。

這個模組使用了Spring的AOP模組為Spring應用的物件提供了事物管理服務。這個模組還在幾種資料庫伺服器給出的錯誤訊息之上建立了一個有意義的異常層。使我們不用試圖破譯神祕的私有的SQL錯誤訊息。

(5)Spring ORM

Spring 並不試圖實現它自己的ORM解決方案,而是為幾種流行的ORM框架提供了整合方案,包括Hibernate,JDO和iBatis SQL對映。Spring的事物管理支援這些ORM框架中的每一個也包括JDBC。

(6)Spring Web

web上下文模組建立在應用上下文模組之上,提供了一個適用於web應用的上下文,這個模組還提供了一些面向服務的支援。例如實現檔案上傳的multipart請求,它提供了Spring和其它web框架的整合,比如struts,webwork。

(7)Spring Web MVC

Spring為構建web應用提供了一個功能全面的MVC框架。雖然Spring可以很容易地與其它MVC框架整合,例如Struts,但Spring的MVC框架使用IOC框架對控制邏輯和業務物件提供完全的分離。它允許你宣告性地將請求引數繫結到業務物件中,此外,Spring的MVC框架還可以利用Spring的任何其它服務,例如國際化資訊與驗證。

3.Spring框架的優點

(1)降低元件之間的耦合度,實現軟體各層之間的解耦

(2)可以使用容器提供的眾多服務,如事務管理服務,訊息服務等等,當使用容器管理事物的時候,開發人員不要手工控制事物,也不再需要處理複雜的事物傳播。

(3)容器提供單例模式支援,開發人員不需要提供程式碼

(4)容器提供AOP支援,利用它很容易實現如許可權攔截,執行期監控等功能

(5)Spring對於主流的框架的提供了整合支援,如整合Struts等,這樣更便於應用的開發。

(6)Spring是輕量級的框架,對於系統沒有侵入性。

名詞解釋:

 輕量級與重量級框架:劃分一個應用是否屬於輕量級還是重量級,主要看它使用了多少服務,使用的服務越多,容器要為普通java物件做的工作就越多,必然會影響到應用的釋出時間或者執行效能。

對於Spring容器,它提供了很多的服務,但這些服務並不是預設為應用開啟的,應用需要某種服務,還需要指明使用該服務,如果應用使用的服務很少,如只使用了Spring提供的核心服務,那麼就屬於輕量級,如果應用使用了Spring提供的大部分服務,那麼就屬於重量級,目前EJB容器預設為應用提供了EJB規範中的所有功能,所以它屬於重量級

4.框架缺點

需要搭建Spring環境,需要引入包,加重應用