深入理解Spring4框架(一)——簡介

我們共同來構建更好的企業應用。Spring幫助全世界的開發團隊構建簡單、便攜、快速和靈活的基於JVM的系統和應用。這兩句話已經足以說明Spring的目標,它針對的領域是企業應用,這套框架構建的應用有着簡單、便攜、快速和靈活的特點。與EJB(Enterprise JavaBean,一個基於Java平臺的服務端組件框架)相比,它是一個輕量級的應用開發平臺。

1 適合人羣

    本系列文章適合對Spring框架有使用經驗的技術人員,或者對Spring有一定了解的初學者。

2 Spring的目標是什麼?

    Spring官方主頁(http://spring.io)有兩句話:

[html] view plain copy
  1. Let's build a better Enterprise.   
  2. 我們共同來構建更好的企業應用。  
  3. Spring helps development teams everywhere build simple, portable, fast and flexible JVM-based systems and applications.   
  4. Spring幫助全世界的開發團隊構建簡單、便攜、快速和靈活的基於JVM的系統和應用。  

    這兩句話已經足以說明Spring的目標,它針對的領域是企業應用,這套框架構建的應用有着簡單、便攜、快速和靈活的特點。與EJB(Enterprise JavaBean,一個基於Java平臺的服務端組件框架)相比,它是一個輕量級的應用開發平臺。

3 認識Spring

    Spring是一個企業級應用開發平臺,到目前爲止,圍繞它有一個較爲完整且成熟的應用開發生態圈,在這個生態圈中,除了Spring核心項目以外,還有很多子項目。因此,理論上,可以使用Spring的生態圈技術來開發一套完整的應用系統。

    儘管JDK提供了豐富的開發功能,但是它很難將一些基礎的組件塊構建成一個完整的框架,它把這個任務交給了開發者和工程師。儘管開發人員可以利用工廠、抽象工廠、創建者、裝飾器等設計模式將這些組件組合起來,但是其中的工作量是相當巨大的,特別是對於中小企業來說,根本沒有那麼多資源來做這件事情。而Spring框架已經幫我們做好了這一切,Spring框架的控制反轉(IoC, Inversion of Control)組件以標準化的方式將這些分散的組件組合到一起,Spring使用了規範的設計模式,很容易將它集成到應用系統中。當前,大量的企業和機構在使用Spring框架。

4 Spring的模塊

    如上圖所示,Spring由20多個模塊組成,它們可以分爲核心容器(Core Container)、數據訪問/集成(Data Access/Integration)、Web、面向切面編程(AOP, Aspect Oriented Programming)、設備(Instrumentation)、消息發送(Messaging)和測試(Test)。

4.1 核心容器

    核心容器包含spring-core、spring-beans、spring-context、spring-context-support和spring-expression (Spring Expression Language,Spring表達式語音)這些模塊。

spring-core和spring-beans構成了框架最基礎的部分,包括控制反轉和依賴注入功能。BeanFactory是工廠模式的一個很成熟的實現。

spring-context是基於spring-core和spring-beans構建的,它提供了一種以框架風格來訪問對象的方式,類似於JNDI註冊。ApplicationContext接口是spring-context的焦點。spring-context-support爲集成第三方庫(如定時器Quartz)提供支持。spring-expression提供了一種強大的表達式語言,可以在運行時查詢和操作對象。

4.2 AOP和設備

    spring-aop模塊提供了一個AOP面向切面編程的實現。比如,允許開發者定義方法攔截器和切入點,以此來將業務邏輯和系統服務進行解耦。

    spring-aspects模塊提供與AspectJ的集成。

    spring-instrument模塊提供了在普通應用服務器中使用到的類設備支持和加載器實現。spring-instrument-tomcat模塊包含了Spring的Tomcat設備代理。

4.3 消息發送

    Spring 4包含了一個spring-messaging模塊,它對Spring集成項目Message、MessageChannel和MessageHandler進行了重要的抽象,它是基於消息發送應用的基礎。

4.4 數據訪問/集成

    數據訪問/集成層包含JDBC(spring-jdbc)、ORM(spring-orm)、OXM(spring-oxm)、JMS(spring-jms)和事務(spring-tx)模塊。

4.5 Web

    Web層包含spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet模塊。其中,spring-web提供了面向Web集成的基本特性,比如文件上傳功能。Spring-webmvc模塊包含了Spring的MVC和REST Web Service實現。Spring-webmvc-portlet模塊提供了在Portlet環境下的MVC實現。

4.6 測試

    Spring-test模塊支持Spring組建JUnit和TestNG的單元測試和集成測試。

5 爲何使用Spring?

    Spring的IOC和AOP兩大核心功能可以大大降低應用系統的耦合性、簡化開發流程。     

    Spring框架技術可在不同層次上起作用,比如IOC管理普通的POJO對象、AOP增強了系統服務和其它組件(事務、MVC、JDBC、ORM和遠程調用等)。Spring的一大特點就是基於接口編程,它是非侵入式的服務。用戶端綁定接口使用JAVA EE服務,而非直接綁定服務,而且應用也可以使用不同的服務(Hibernate、MyBatis等)。我們可以根據自己的需要,使用Spring的一部分服務,而不必使用完整的Spring系列項目。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章