【第1章 Spring概述與結構】1.2 Spring模塊與結構

上一節:【第1章 Spring概述與結構】1.1 Spring起源與概述 ##Spring功能##數據庫

  1. 基於Java Beans的配置管理,採用IOC的原理,特別是對依賴注入技術的使用。這些都用來減小各組件間對實施細則的相互依賴性。
  2. 一個核心的,全局適用的Bean工廠。
  3. 一個通常抽象化的層面來管理數據庫間的數據處理。
  4. 創建在框架內的,對Java數據處理API和單獨的JDBC數據源的通常性策略。所以,在數據處理支持上對Java企業版本環境的依賴性得以消除。
  5. 和一些可持續性的框架,如Hibernate,JDO,MyBatis和db4o的整合。
  6. Web應用中的MVC框架,基於核心的Spring功能,支持多種產生視圖的技術,包括JSP,FreeMarker,Velocity,Tiles,iText,和POI。
  7. 大量的AOP框架以提供諸如數據處理管理的服務。同IOC的功能同樣,目的是提升系統的模塊化程度

##Spring模塊## Spring框架旨在分離體系結構的層次,由7個定義良好的模塊組成,所以每一層均可以修改而不會影響到其它層。每一層都不知道其上層的關注點;就其可能而言,只對所緊挨的下一層有依賴。層與層之間的依賴一般是以接口的形式表現,以確保其耦合儘量鬆散。Spring模塊構建在覈心容器之上,核心容器定義了建立、配置和管理Bean的方式。編程

輸入圖片說明

若是做爲一個總體,這些模塊爲你提供了開發企業應用所需的一切。但你沒必要將應用徹底基於Spring框架。你能夠自由地挑選適合你的應用的模塊而忽略其他的模塊。安全

就像你所看到的,全部的Spring模塊都是在覈心容器之上構建的。容器定義了Bean是如何建立、配置和管理的——更多的Spring細節。當你配置你的應用時,你會潛在地使用這些類。可是做爲一名開發者,你最可能對影響容器所提供的服務的其它模塊感興趣。這些模塊將會爲你提供用於構建應用服務的框架,例如AOP和持久性。服務器

以上組成Spring框架的每一個模塊(或組件)均可以單獨存在,或者與其餘一個或多個模塊聯合實現。每一個模塊的功能以下:app

  1. 核心容器:Spring框架最基礎的部分,它提供了依賴注入(Dependency Injection)特徵來實現容器對Bean的管理。這裏最基本的概念是BeanFactory,它是任何Spring應用的核心。BeanFactory是工廠模式的一個實現,它使用IoC將應用配置和依賴說明從實際的應用代碼中分離出來。
  2. Spring上下文:核心模塊的BeanFactory使Spring成爲一個容器,而上下文模塊使它成爲一個框架。這個模塊擴展了BeanFactory的概念,增長了對國際化(I18N)消息、事件傳播以及驗證的支持。 另外,這個模塊提供了許多企業服務,例如電子郵件、JNDI訪問、EJB集成、遠程以及時序調度(scheduling)服務。也包括了對模版框架例如Velocity和FreeMarker集成的支持。
  3. Spring AOP:Spring在它的AOP模塊中提供了對面向切面編程的豐富支持。這個模塊是在Spring應用中實現切面編程的基礎。爲了確保Spring與其它AOP框架的互用性, Spring的AOP支持基於AOP聯盟定義的API。AOP聯盟是一個開源項目,它的目標是經過定義一組共同的接口和組件來促進AOP的使用以及不一樣的AOP實現之間的互用性。經過訪問他們的站點http://aopalliance.sourceforge.net,你能夠找到關於AOP聯盟的更多內容。 Spring的AOP模塊也將元數據編程引入了Spring。使用Spring的元數據支持,你能夠爲你的源代碼增長註釋,指示Spring在何處以及如何應用切面函數。
  4. Spring DAO:使用JDBC常常致使大量的重複代碼,取得鏈接、建立語句、處理結果集,而後關閉鏈接。Spring的JDBC和DAO模塊抽取了這些重複代碼,所以你能夠保持你的數據庫訪問代碼乾淨簡潔,而且能夠防止因關閉數據庫資源失敗而引發的問題。 這個模塊還在幾種數據庫服務器給出的錯誤消息之上創建了一個有意義的異常層。使你不用再試圖破譯神祕的私有的SQL錯誤消息! 另外,這個模塊還使用了Spring的AOP模塊爲Spring應用中的對象提供了事務管理服務。
  5. Spring ORM:對那些更喜歡使用對象/關係映射工具而不是直接使用JDBC的人,Spring提供了ORM模塊。Spring並不試圖實現它本身的ORM解決方案,而是爲幾種流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事務管理支持這些ORM框架中的每個也包括JDBC。
  6. Spring Web:Web上下文模塊創建於應用上下文模塊之上,提供了一個適合於Web應用的上下文。另外,這個模塊還提供了一些面向服務支持。例如:實現文件上傳的multipart請求,它也提供了Spring和其它Web框架的集成,好比Struts、WebWork。
  7. Spring MVC:Spring爲構建Web應用提供了一個功能全面的MVC框架。雖然Spring能夠很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對控制邏輯和業務對象提供了徹底的分離。 它也容許你聲明性地將請求參數綁定到你的業務對象中,此外,Spring的MVC框架還能夠利用Spring的任何其它服務,例如國際化信息與驗證。

Spring帶來了複雜的J2EE開發的春天。它的核心是輕量級的IoC容器,它的目標是爲J2EE應用提供了全方位的整合框架,在Spring框架下實現多個子框架的組合,這些子框架之間能夠彼此獨立,也可使用其它的框架方案加以代替,Spring但願爲企業應用提供一站式(one-stop shop)的解決方案。 ##Spring特色## 容器管理事務,容器貫穿始終:(1)對象生命週期的管理;(2)容器自己具有功能,加在本身的類中。須要本身調用則爲顯示調用。而儘可能用容器隱式調用,Spring即爲隱式調用、聲明式編程。框架

Spring輕量級容器體如今:只需設置一個Jar文件到CLASSPATH,不用去調用它,但又能夠擁有其強大的功能。組件的極大程度的複用。模塊化

聲明式編程:在xml文件中聲明。基於POJO類,支持事務,事務是根本;而EJB事務由Container管理。函數

不重複造輪子:Spring將View層與持久層,好比與Hibernate聯繫起來。Spring簡化Hibernate的使用,還能夠幫助管理Hibernate。Spring自己沒有O-R_mapping,由於有Hibernate,它已經作得很好了。工具

JDBC異常封裝:Spring將編譯時異常(checked)轉化爲運行時異常(runtime)。好比,JDBC 則爲編譯時異常,即必須寫try…catch;而Hibernate程序爲運行時異常。.net

總之,Spring是一個輕型容器(light-weight container),其核心是Bean工廠(Bean Factory),用以構造咱們所須要的M(Model)。在此基礎之上,Spring提供了AOP(Aspect-Oriented Programming, 面向層面的編程)的實現,用它來提供非管理環境下聲明方式的事務、安全等服務;對Bean工廠的擴展ApplicationContext更加方便咱們實現Java EE的應用;DAO/ORM的實現方便咱們進行數據庫的開發;Web MVC和Spring Web提供了Java Web應用的框架或與其它流行的Web框架進行集成。

下一節:【第2章 Spring快速入門】2.1 Java應用之HelloWorld

相關文章
相關標籤/搜索