spring的幾大模塊

702767-20150907115314981-2080783917.jpg (816×425)

Core包是框架的最基礎部分,並提供依賴注入(Dependency Injection)管理Bean容器功能。

Context包,構建於Core包上,提供了一種框架式訪問對象的方式,有些像JNDI註冊。Context封裝包繼承了beans包的功能,還增加了國際化(I18N),事件傳播,資源裝載,以及透明創建上下文,例如通過servlet容器。

DAO包提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。並且,JDBC封裝包還提供了一種比編程性更好的聲明性事務管理方法,不僅僅是實現了特定接口,而且對所有的POJOs都適用。

ORM包爲流行的“關係/對象”映射APIs提供了集成層,包括JDO,hibernate和iBatis。通過ORM包,可以混合使用所有Spring提供的特性進行“對象/關係”映射,如前邊提到的簡單聲明性事務管理。

AOP包提供了符合AOP Alliance規範的面向方面的編程實現,例如方法攔截器(method-interceptors)和切點(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。

Web包提供了基本的面向Web的綜合特性,例如多方文件上傳,利用Servlet listeners進行IoC容器初始化和針對Web的applicationcontext。當與WebWork或Struts一起使用Spring時,這個包使Spring可與其他框架結合。

Web MVC提供了面向Web應用的Model-View-Controller實現。Spring的MVC框架並不是僅僅提供一種傳統的實現,它提供了一種清晰的分離模型,在領域模型代碼和web form之間。並且,還可以藉助Spring框架的其他特性。

二、  包結構

自3.0以後包結構就有所變化,將每個模塊獨立出一個包來,分工明確,用戶可以根據不同的需求自行組裝Jar,而不是像以前一樣將整個Spring.jar引入項目中,下面以3.2M1爲例,簡單介紹一下Spring的包結構:

spring-core.jar:包含Spring框架基本的核心工具類,Spring其它組件要都要使用到這個包裏的類,是其它組件的基本核心;

spring-aop.jar:面向切面編程,提供AOP(面向切面編程)實現;

spring-aspects.jar:spring整合了aspectjrt.jar,也可以使用aspectjrt.jar來代替;

spring-beans.jar:springIoC(依賴注入)的基礎實現,所有應用都要用到的,它包含訪問配置文件、創建和管理bean以及進行Inversion of Control / DependencyInjection(IoC/DI)操作相關的所有類;

spring-context.jar:spring提供在基礎 IoC 功能上的擴展服務,此外還提供許多企業級服務的支持,如 郵件服務、任務調度、JNDI定位、EJB集成、遠程訪問、 緩存以及各種視圖層框架的封裝等;

spring-context-support.jar:spring-context的擴展支持,包含支持緩存Cache(ehcache)、JCA、JMX、郵件服務(JavaMail、COS Mail)、任務計劃Scheduling(Timer、Quartz)方面的類。

spring-asm.jar:ASM是小巧輕便的 Java 字節碼操控框架 ,它能方便地生成和改造 Java 代碼。 Hibernate和 Spring在底層都用到了 ASM(CgLib底層用的 asm);

spring-expression.jar:spring表達式語言;

spring-instrument.jar:spring3.1對服務器的代理接口

spring-instrument-tomcat.jar:spring3.1對 Tomcat 的連接池的集成;

spring-jdbc.jar:包含對Spring對JDBC數據訪問進行封裝的所有類;

spring-jms.jar:提供了對JMS1.0.2/1.1的支持類;

spring-orm.jar:包含Spring對DAO特性集進行了擴展,使其支持 iBATIS、JDO、OJB、TopLink,因爲Hibernate已經獨立成包了,現在不包含在這個包裏了。這個jar文件裏大部分的類都要依賴spring-dao.jar裏的類,用這個包時你需要同時包含spring-dao.jar包;

spring-oxm.jar:spring對Object/XMI的映射的支持,可以讓JAVA與XML之間來回切換;

spring-struts.jar:整合Struts的支持;

spring-test.jar:spring對Junit等測試框架的簡單封裝;

Spring-tx.jar:提供對事務的支持;

spring-web.jar:包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF集成類、文件上傳的支持類、Filter類和大量工具輔助類;

Spring-webmvc.jar:這個jar文件包含Spring MVC框架相關的所有類。包含國際化、標籤、Theme、視圖展現的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相關類。當然,如果你的應用使用了獨立的MVC框架,則無需這個JAR文件裏的任何類;

spring-webmvc-portlet.jar:springMVC的增強,支持portlet標準(JSR168/JSR286);

                                                                                                                                                                                                              via(若如初見)

三、  優劣

Spring有非常多的優點,每個功能模塊帶來的好處是不盡相同的,比如依賴反轉促進松耦合,使程序可擴展性加強,讓你的Bean得到統一的管理,AOP技術分離和邏輯無關的系統級服務,讓程序內聚性增強,還有聲明式事務、MVC等等帶來的好處。歸根結底Spring最大的優點——解決企業應用的複雜性,使J2EE易用。這也是Spring開發者的初衷也是奮鬥目標,到目前爲止本人只用過Spring的冰山一角,很難一一說出它的好處,更沒有發掘它的缺點,總體感覺,Spring框架值得擁有。

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