Spring這類的框架給我們開發帶來非常大的好處,讓我們更加快速、有效的開發。
所以我們在開發中通常都會用到各種框架,每個框架都有很多jar包,每個jar都有各自不同的功能。開發不同的功能用到的jar也不盡相同,所以當我們用到相關框架的時候,並不是把它所有的jar都引入系統。那麼怎麼確定自己將會用到框架中的哪些jar包呢?
這就需要我們知道框架中每個jar都是干什麼的。
我們先來看看spring 3.2.9 的 jar 包。
Spring還包括有其它21 個獨立的jar包,各自包含著對應的Spring組件,我們可以根據自己的需要來選擇組合jar包,接下來我將為大家一一道來。
(1)spring-aop-3.2.9.RELEASE.jar
這個jar文件包含在應用中使用Spring的 AOP特性時所需的類。使用基於AOP的Spring特性,如聲明型事務管理(Declarative Transaction Management),也要在應用裡包含這個jar包。
spring 的面向切面編程,提供AOP(面向切面編程)實現。
(2)spring-aspects-3.2.9.RELEASE.jar
Spring整合了aspectjrt.jar,也可以使用aspectjrt.jar來代替。
(3)spring-beans-3.2.9.RELEASE.jar
SpringIoC(依賴注入)的基礎實現,所有應用都要用到的,它包含訪問配置文件、創建和管理bean以及進行Inversion of Control / Dependency Injection(IoC/DI)操作相關的所有類。
(4)spring-build-src-3.2.9.RELEASE.jar
(5)spring-context-3.2.9.RELEASE.jar
spring 提供在基礎 IoC 功能上的擴展服務,此外還提供許多企業級服務的支持,如 郵件服務、任務調度、JNDI定位、EJB 集成、遠程訪問、 緩存以及各種視圖層框架的封裝等。
(6)spring-context-support-3.2.9.RELEASE.jar
spring-context 的擴展支持,包含支持緩存Cache(ehcache)、JCA、JMX、郵件服務(Java Mail、COS Mail)、任務計劃Scheduling(Timer、Quartz)方面的類。
(7)spring-core-3.2.9.RELEASE.jar
包含Spring框架基本的核心工具類,Spring其它組件要都要使用到這個包裡的類,是其它組件的基本核心。
(8) spring-expression-3.2.9.RELEASE.jar
spring 表達式語言。
(9) spring-framework-bom-3.2.9.RELEASE.jar
(10) spring-instrument-3.2.9.RELEASE.jar
spring3.2.9 對服務器的代理接口。
(11) spring-instrument-tomcat-3.2.9.RELEASE.jar
spring3.2.9 對 Tomcat 的連接池的基成。
(12) spring-jdbc-3.2.9.RELEASE.jar
包含對Spring對JDBC數據訪問進行封裝的所有類。
(13) spring-jms-3.2.9.RELEASE.jar
提供了對JMS 1.0.2/1.1的支持類。
(14) spring-orm-3.2.9.RELEASE.jar
包含Spring對DAO特性集進行了擴展,使其支持 iBATIS、JDO、OJB、TopLink,因為Hibernate已經獨立成包了,現在不包含在這個包裡了。這個jar文件裡大部分的類都要依賴spring-dao.jar裡的類,用這個包時你需要同時包含spring-dao.jar包 。
(15) spring-oxm-3.2.9.RELEASE.jar
spring 對Object/XMI 的映射的支持,可以讓JAVA與XML之間來回切換。
(16) spring-struts-3.2.9.RELEASE.jar
整合 Struts 的支持。
(17) spring-test-3.2.9.RELEASE.jar
spring 對Junit 等測試框架的簡單封裝。
(18) spring-tx-3.2.9.RELEASE.jar
為JDBC、Hibernate、JDO、JPA等提供的一致的聲明式和編程式事務管理。
(19)spring-web-3.2.9.RELEASE.jar
包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF集成類、文件上傳的支持類、Filter類和大量工具輔助類。
(20) spring-webmvc-3.2.9.RELEASE.jar
這個jar文件包含Spring MVC框架相關的所有類。包含國際化、標簽、Theme、視圖展現的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相關類。當然,如果你的應用使用了獨立的MVC框架,則無需這個JAR文件裡的任何類。
(21) spring-webmvc-portlet-3.2.9.RELEASE.jar
springMVC 的增強,支持portlet標准(JSR168/JSR286)。
如何選擇jar包,除了要了解每個jar的用途以外,還要了解jar包與jar包之間的依賴關系。有些jar包是其它jar包的基礎,而有些jar則需要依賴於其它jar包才能工作。那麼Spring裡jar包是怎樣一個依賴關系呢?
1) spring-core.jar依賴commons-collections.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
spring-core.jar是spring的核心包,其它所有jar包都依賴於它。