「Spring專題」1、設計理念與整體架構

Spring是目前最受歡迎的框架之一,今天我們就開始從宏觀和微觀兩個角度去解析一下Spring。從Spring的使用以及源碼兩條線路出發。Let's go!

一、設計目標

答:我們從設計者的角度出發,首先Spring是一個一站式的輕量級應用開發框架(平臺)。這個平臺為開發者提供:

1、支持POJO和使用JavaBean的開發方式,使應用面向接口開發,充分支持面向對象的設計方法。這樣開發的入門、測試、應用部署得到了簡化。

2、使用Spring的IoC容器,可以對各種對象之間的耦合關係實現一個文本化、外部化的工作。完成對象間的解耦:原來的對象-對象的關係,轉化為對象-IoC容器-對象的關係。

3、通過AOP,以動態和非入侵的方式來增強服務功能。

4、在IoC和AOP兩個模塊的兩個模塊支持下,可以根據使用情況動態擴展到Spring體系中(只要依據IoC與AOP所約定好的特定模式)。基本來說,Spring體系中已經包括我們在開發中經常用到的許多服務了。比如事務處理、JDBC、ORM等等。

二、整體架構

「Spring專題」1、設計理念與整體架構

Spring 架構圖

很多人看這個圖都頭大。但是我們還是要慢慢分析一下。有助於我們整體把握Spring。

Spring IoC:最下面這層就是IoC容器了,包含最基本的BeanFactory的接口與實現。它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規範與實際的應用程序代碼分開。另外Spring還設計了ApplicationContext應用上下文供用戶使用。

Spring AOP:最左邊就是Spring AOP了,通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring集成了AspectJ作為AOP的特定實現,同時還在JVM動態代理/CGLIB的基礎上,實現了一個AOP框架。

Spring Context:Spring Context是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。

三、Spring的價值

1、Spring 是一個非入侵性框架,其目標是使應用程序代碼對框架的依賴最小化,應用代碼可以在沒有Spring或者其他容器中進行。

2、Spring提供了一個一致性的編程模型,使應用直接使用POJO開發,從而可以與運行環境隔離開。

3、Spring推動應用的設計風格像面向對象及面向接口編程。提高代碼的重用性與可測試性。


分享到:


相關文章: