核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory
,它是工廠模式的實現。BeanFactory
使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規範與實際的應用程序代碼分開。node
Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。web
Spring AOP:經過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。因此,能夠很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊爲基於 Spring 的應用程序中的對象提供了事務管理服務。經過使用 Spring AOP,不用依賴 EJB 組件,就能夠將聲明性事務管理集成到應用程序中。spring
Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不一樣數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,而且極大地下降了須要編寫的異常代碼數量(例如打開和關閉鏈接)。Spring DAO 的面向 JDBC 的異常聽從通用的 DAO 異常層次結構。數據庫
Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。全部這些都聽從 Spring 的通用事務和 DAO 異常層次結構。編程
Spring Web 模塊:Web 上下文模塊創建在應用程序上下文模塊之上,爲基於 Web 的應用程序提供了上下文。因此,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工做。緩存
Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。經過策略接口,MVC 框架變成爲高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。mvc
spring.jar包含一下jar(除了spring-mock.jar )的一個總體jar包。框架
spring依賴的基礎jar(commons-collections.jar************* cglib-nodep-2.1_3.jar **************** aopalliance.jar)工具
(1) spring-core.jar
Spring框架基本的核心工具類,Spring其它組件要都要使用到這個包裏的類,是其它組件的基本核心,固然你也能夠在本身的應用系統中使用這些工具類。單元測試
(2) spring-beans.jar
是全部應用都要用到的,它包含訪問配置文件、建立和管理bean以及進行Inversion of Control / Dependency Injection(IoC/DI)操做相關的全部類。若是應用只需基本的IoC/DI支持,引入spring-core.jar及spring- beans.jar文件就能夠了。
(3) spring-aop.jar
在應用中使用Spring的AOP特性時所需的類。使用基於AOP的Spring特性,如聲明型事務管理(Declarative Transaction Management),也要在應用裏包含這個jar包。
(4) spring-context.jar
爲Spring核心提供了大量擴展。能夠找到使用Spring ApplicationContext特性時所需的所有類,JDNI所需的所有類,UI方面的用來與模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的類,以及校驗Validation方面的相關類。
(5) spring-dao.jar
包含Spring DAO、Spring Transaction進行數據訪問的全部類。爲了使用聲明型事務支持,還需在本身的應用裏包含spring-aop.jar。
(6) spring-hibernate.jar
包含Spring對Hibernate 2及Hibernate 3進行封裝的全部類。
(7) spring-jdbc.jar
包含對Spring對JDBC數據訪問進行封裝的全部類。
(8) spring-orm.jar
包含Spring對DAO特性集進行了擴展,使其支持 iBATIS、JDO、OJB、TopLink,由於Hibernate已經獨立成包了,如今不包含在這個包裏了。這個jar文件裏大部分的類都要依賴 spring-dao.jar裏的類,用這個包時你須要同時包含spring-dao.jar包。
(9) spring-remoting.jar
包含支持EJB、JMS、遠程調用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的類。
(10) spring-support.jar
包含支持緩存Cache(ehcache)、JCA、JMX、郵件服務(Java Mail、COS Mail)、任務計劃Scheduling(Timer、Quartz)方面的類。
(11) spring-web.jar
包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF集成類、文件上傳的支持類、Filter類和大量工具輔助類。
(12) spring-webmvc.jar
包含Spring MVC框架相關的全部類。包含國際化、標籤、Theme、視圖展示的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相關類。固然,若是你的應用使用了獨立的MVC框架,則無需這個JAR文件裏的任何類。
(13) spring-mock.jar
包含Spring一整套mock類來輔助應用的測試。Spring測試套件使用了其中大量mock類,這樣測試就更加簡單。模擬HttpServletRequest和HttpServletResponse類在Web應用單元測試是很方便的。
Eclispe有個插件叫 ClassPath Helper能夠幫你找找所依賴的類。
Spring包依賴說明: 1) spring-core.jar需commons-collections.jar,spring-core.jar是如下其它各個的基本。 2) spring-beans.jar需spring-core.jar,cglib-nodep-2.1_3.jar 3) spring-aop.jar需spring-core.jar,spring-beans.jar,cglib-nodep-2.1_3.jar,aopalliance.jar 4) spring-context.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar 5) spring-dao.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar 6) spring-jdbc.jar需spring-core.jar,spring-beans.jar,spring-dao.jar 7) spring-web.jar需spring-core.jar,spring-beans.jar,spring-context.jar 8) spring-webmvc.jar需spring-core.jar spring-beans.jar spring-context.jar spring-web.jar 9) spring- hibernate.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,spring-webmvc.jar 10) spring-orm.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-jdbc.jar,spring-web.jar,spring-webmvc.jar 11) spring- remoting.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-context.jar,spring-web.jar,spring-webmvc.jar 12) spring-support.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar 13) spring-mock.jar需spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar