spring框架體系結構介紹
Spring框架學習(本人整理,非原創)
一、spring簡介
Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson創建。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式) 輕量級開源框架。---- 百度百科
如果作為一個整體,這些模塊為你提供了開發企業應用所需的一切。但你不必將應用完全基於Spring框架。你可以自由地挑選適合你的應用的模塊而忽略其余的模塊。
就像你所看到的,所有的Spring模塊都是在核心容器之上構建的。容器 定義了Bean是如何創建、配置和管理的——更多的Spring細節。當你配置你的應用時,你會潛在地使用這些類。但是作為一名開發者,你最可能對影響容 器所提供的服務的其它模塊感興趣。這些模塊將會為你提供用於構建應用服務的框架,例如AOP和持久性。
模塊體系介紹
核心容器
這是Spring框架最基礎的部分,它提供了依賴註入 (DependencyInjection)特征來實現容器對Bean的管理。這裏最基本的概念是BeanFactory,它是任何Spring應用的核 心。BeanFactory是工廠模式的一個實現,它使用IoC將應用配置和依賴說明從實際的應用代碼中分離出來。
應用上下文(Context)模塊
核心模塊的BeanFactory使Spring成為一個容器,而上下文模塊使它成為一個框架。這個模塊擴展了BeanFactory的概念,增加了對國際化(I18N)消息、事件傳播以及驗證的支持。
另外,這個模塊提供了許多企業服務,例如電子郵件、JNDI訪問、EJB集成、遠程以及時序調度(scheduling)服務。也包括了對模版框架例如Velocity和FreeMarker集成的支持。
Spring的AOP模塊
Spring在它的AOP模塊中提供了對面向切面編程的豐富支持。這個模 塊是在Spring應用中實現切面編程的基礎。為了確保Spring與其它AOP框架的互用性,Spring的AOP支持基於AOP聯盟定義的API。 AOP聯盟是一個開源項目,它的目標是通過定義一組共同的接口和組件來促進AOP的使用以及不同的AOP實現之間的互用性。通過訪問他們的站點,你可以找 到關於AOP聯盟的更多內容。
Spring的AOP模塊也將元數據編程引入了Spring。使用Spring的元數據支持,你可以為你的源代碼增加註釋,指示Spring在何處以及如何應用切面函數。
JDBC抽象和
使用JDBC經常導致大量的重復代碼,取得連接、創建語句、處理結果集,然後關閉連接。Spring的JDBC和DAO模塊抽取了這些重復代碼,因此你可以保持你的數據庫訪問代碼幹凈簡潔,並且可以防止因關閉數據庫資源失敗而引起的問題。
這個模塊還在幾種數據庫服務器給出的錯誤消息之上建立了一個有意義的異常層。使你不用再試圖破譯神秘的私有的SQL錯誤消息!
另外,這個模塊還使用了Spring的AOP模塊為Spring應用中的對象提供了事務管理服務。
對象/關系映射集成模塊
對那些更喜歡使用對象/關系映射工具而不是直接使用JDBC的 人,Spring提供了ORM模塊。Spring並不試圖實現它自己的ORM解決方案,而是為幾種流行的ORM框架提供了集成方案,包括 Hibernate、JDO和iBATIS SQL映射。Spring的事務管理支持這些ORM框架中的每一個也包括JDBC。
Spring的Web模塊
Web上下文模塊建立於應用上下文模塊之上,提供了一個適合於Web應用的上下文。另外,這個模塊還提供了一些面向服務支持。例如:實現文件上傳的multipart請求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。
Spring的MVC框架
Spring為構建Web應用提供了一個功能全面的MVC框架。雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對控制邏輯和業務對象提供了完全的分離。
它也允許你聲明性地將請求參數綁定到你的業務對象中,此外,Spring的MVC框架還可以利用Spring的任何其它服務,例如國際化信息與驗證。
spring優點:
輕量級的容器框架沒有侵入性
使用IoC容器更加容易組合對象直接間關系,面向接口編程,降低耦合
Aop可以更加容易的進行功能擴展,遵循ocp開發原則
創建對象默認是單例的,不需要再使用單例模式進行處理
spring缺點:
業務功能依賴spring特有的功能,依賴與spring環境。
spring框架體系結構介紹