1. 程式人生 > >Spring技術內幕--(1)Spring的設計理念和整體架構

Spring技術內幕--(1)Spring的設計理念和整體架構

一、Spring的設計目標

1、設計理念

在Java EE的應用開發中,支援POJO和使用JavaBean的開發方式,使應用面向介面開發,充分支援OO(面向物件)的設計方法。

2、與傳統Java EE開發的區別

(1)在Java EE應用開發中,傳統的EJB開發需要依賴按照J2EE規範實現的J2EE應用伺服器。在應用設計,特別是在實現時,往往需要遵循一系列的介面標準,才能夠在應用伺服器的環境中得到測試和部署。這種開發方式,使應用在可測試性和部署上都會受到一些影響。Spring的設計理念採用了相對EJB而言的輕量級開發思想,即使用POJO的開發方式,只需要使用簡單的Java物件或者JavaBean就能進行Java EE開發,這樣開發的入門、測試、應用部署都得到了簡化。
(2)在應用開發中,往往會涉及複雜的物件耦合關係,如果在Java程式碼中處理這些耦合關係,對程式碼的維護性和應用擴充套件性會帶來許多不便。而使用Spring作為應用開發平臺,通過使用Spring的IOC容器,可以對這些耦合關係(對Java程式碼而言)實現一個文字化、外部化的工作,也就是說,通過一個或幾個XML檔案。我們就可以方便地對應用物件的耦合關係進行瀏覽、修改和維護,這樣,在很大程度上簡化了應用開發。同時,通過IOC容器實現的依賴反轉,把依賴關係的管理從Java物件中解放出來,交給了IOC容器(或者說是Spring框架)來完成,從而完成了物件之間的關係解耦:原來的物件-物件的關係,轉化為物件-IOC容器-物件的關係,通過這種物件-IOC容器-物件的關係,更體現出IOC容器對應用的平臺作用。

二、Spring的整體架構

在Spring中,大致按照一個參考關係,將其劃分為幾個層次,比如IoC容器、AOP核心模組、封裝的Java EE服務、作為中間的驅動元件、其它作為上層的應用。
從技術上看,Spring是封裝的很清晰的一個分層架構,可以參照下圖。

這裡寫圖片描述

通過上述架構圖,我們可以瞭解到以下Spring基本組成模組。

(1)Spring IoC:最為基本的IoC容器BeanFactory的介面與實現。比如:XmlBeanFactory,FileSystemXmlApplicationContext等。

(2)Spring AOP:Spring AOP的核心模組。

(3)Spring MVC:Spring MVC模組,主要用於Web開發。

(4)Spring JDBC/Spring ORM:SpringJDBC操作封裝。

(5)Spring事務處理:Spring AOP實現的增強的事務 處理模組。

(6)Spring遠端呼叫:Spring遠端呼叫模組。

三、Spring的優勢:

(1)Spring是一個非侵入式的框架,其目標是師程式對框架的依賴性最小,程式碼可以在其他沒有Spring的平臺上使用。

(2)Spring提供了一個一致的程式設計風格,直接使用POJO開發。

(3)Spring使我們的程式設計風格向面向介面風格轉變。

(4)Spring改進了平臺風格,可以使我們很好的和其他平臺整合,比如Struts,Hibernate,MyBatis。