基于Spring中各個(gè)jar包的作用及依賴(lài)(詳解)
先附spring各版本jar包下載鏈接http://repo.spring.io/release/org/springframework/spring/
spring.jar 是包含有完整發(fā)布模塊的單個(gè)jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar
示例圖片為Spring-2.5.6.jar的包目錄
下面講解各個(gè)jar包的作用:
1.org.springframework.aop或spring-aop.jar
這個(gè)jar文件包含在應(yīng)用中使用Spring的AOP特性時(shí)所需的類(lèi)。使用基于AOP的Spring特性,如聲明型事務(wù)管理(Declarative Transaction Management),也要在應(yīng)用里包含這個(gè)jar包。
外部依賴(lài)spring-core.jar,spring-beans.jar,cglib-nodep.jar,aopalliance.jar
附:aopalliance.jar:這個(gè)包是AOP聯(lián)盟的API包,里面包含了針對(duì)面向切面的接口。通常Spring等其它具備動(dòng)態(tài)織入功能的框架依賴(lài)此包。
cglib-nodep.jar:這個(gè)包是一個(gè)強(qiáng)大的,高性能,高質(zhì)量的Code生成類(lèi)庫(kù)。它可以在運(yùn)行期擴(kuò)展Java類(lèi)與實(shí)現(xiàn)Java接口。 當(dāng)然這些實(shí)際的功能是asm所提供的,asm又是什么?Java字節(jié)碼操控框架。cglib就是封裝了asm,簡(jiǎn)化了asm的操作,實(shí)現(xiàn)了在運(yùn)行期動(dòng)態(tài)生成新的class。 實(shí)際上CGlib為spring aop提供了底層的一種實(shí)現(xiàn);為hibernate使用cglib動(dòng)態(tài)生成VO/PO (接口層對(duì)象)。
2.spring-asm.jar
Spring獨(dú)立的asm程序, Spring2.5.6的時(shí)候需要asmJar 包, 3.0開(kāi)始提供他自己獨(dú)立的asmJar。
3.spring-beans.jar
這個(gè)jar文件是所有應(yīng)用都要用到的,它包含訪問(wèn)配置文件、創(chuàng)建和管理bean 以及進(jìn)行Inversion of Control / Dependency Injection(IoC/DI)操作相關(guān)的所有類(lèi)。如果應(yīng)用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
外部依賴(lài)spring-core,cglib-nodep.jar。
4.spring-core.jar
這個(gè)jar 文件包含Spring 框架基本的核心工具類(lèi)。Spring 其它組件要都要使用到這個(gè)包里的類(lèi),是其它組件的基本核心,當(dāng)然你也可以在自己的應(yīng)用系統(tǒng)中使用這些工具類(lèi)。
外部依賴(lài)Commons-Logging, Log4J。
5.spring-aop.jar
這個(gè)jar 文件包含在應(yīng)用中使用Spring 的AOP 特性時(shí)所需的類(lèi)和源碼級(jí)元數(shù)據(jù)支持。使用基于AOP 的Spring特性,如聲明型事務(wù)管理(Declarative Transaction Management),也要在應(yīng)用里包含這個(gè)jar包。
外部依賴(lài)spring-core,spring-beans,aopalliance,CGLIB,Commons Attributes。
6.spring-context.jar
這個(gè)jar文件為Spring核心提供了大量擴(kuò)展??梢哉业绞褂肧pring ApplicationContext特性時(shí)所需的全部類(lèi),JDNI 所需的全部類(lèi),instrumentation組件以及校驗(yàn)Validation 方面的相關(guān)類(lèi)。
外部依賴(lài)spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar。
7.spring-dao.jar
這個(gè)jar 文件包含Spring DAO、Spring Transaction 進(jìn)行數(shù)據(jù)訪問(wèn)的所有類(lèi)。為了使用聲明型事務(wù)支持,還需在自己的應(yīng)用里包含spring-aop.jar。
外部依賴(lài)spring-core,spring-aop, spring-context, JTA API。
8.spring-jdbc.jar
這個(gè)jar 文件包含對(duì)Spring 對(duì)JDBC 數(shù)據(jù)訪問(wèn)進(jìn)行封裝的所有類(lèi)。
外部依賴(lài)spring-beans,spring-dao。
9.spring-support.jar
這個(gè)jar文件包含支持UI模版(Velocity,F(xiàn)reeMarker,JasperReports),郵件服務(wù),腳本服務(wù)(JRuby),緩存Cache(EHCache),任務(wù)計(jì)劃Scheduling(uartz)方面的類(lèi)。
外部依賴(lài)spring-context, spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache
10.spring-web.jar
這個(gè)jar 文件包含Web 應(yīng)用開(kāi)發(fā)時(shí),用到Spring 框架時(shí)所需的核心類(lèi),包括自動(dòng)載入Web Application Context 特性的類(lèi)、Struts 與JSF 集成類(lèi)、文件上傳的支持類(lèi)、Filter 類(lèi)和大量工具輔助類(lèi)。
外部依賴(lài)spring-context, Servlet API, JSP API, JSTL, Commons FileUpload, COS。
11.spring-webmvc.jar
這個(gè)jar 文件包含Spring MVC 框架相關(guān)的所有類(lèi)。包括框架的Servlets,Web MVC框架,控制器和視圖支持。當(dāng)然,如果你的應(yīng)用使用了獨(dú)立的MVC 框架,則無(wú)需這個(gè)JAR 文件里的任何類(lèi)。
外部依賴(lài)spring-web, spring-support,Tiles,iText,POI。
12.spring-portlet.jar
spring自己實(shí)現(xiàn)的一個(gè)類(lèi)似Spring MVC的框架。包括一個(gè)MVC框架和控制器。
外部依賴(lài)spring-web, Portlet API,spring-webmvc。
13.spring-struts.jar
Struts框架支持,可以更方便更容易的集成Struts框架。
外部依賴(lài)spring-web,Struts。
14.spring-remoting.jar
這個(gè)jar 文件包含支持EJB、遠(yuǎn)程調(diào)用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的類(lèi)。
外部依賴(lài)spring-aop, (spring-context,spring-web,Hessian,Burlap,JAX-RPC,EJB API)。
15.spring-jmx.jar
這個(gè)jar包提供了對(duì)JMX 1.0/1.2的支持類(lèi)。
外部依賴(lài)spring-beans,spring-aop, JMX API。
16.spring-jms.jar
這個(gè)jar包提供了對(duì)JMS 1.0.2/1.1的支持類(lèi)。
外部依賴(lài)spring-beans,spring-dao,JMS API。
17spring-jca.jar
對(duì)JCA 1.0的支持。JDO(Java Data Object )是Java對(duì)象持久化的新的規(guī)范,也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化API。
外部依賴(lài)spring-beans,spring-dao, JCA API。
18.spring-jdo.jar
對(duì)JDO 1.0/2.0的支持。JCA (J2EE 連接器架構(gòu),Java Connector Architecture),可以將有JCA適配器其他語(yǔ)言的系統(tǒng)部署到j(luò)2ee應(yīng)用服務(wù)器中
外部依賴(lài)spring-jdbc, JDO API, (spring-web)。
19.spring-jpa.jar
對(duì)JPA 1.0的支持。
外部依賴(lài)spring-jdbc, JPA API, (spring-web)。
20.spring-hibernate2.jar
對(duì)Hibernate 2.1的支持,已經(jīng)不建議使用。
外部依賴(lài)spring-jdbc,Hibernate2,(spring-web)。
21.spring-hibernate3.jar
對(duì)Hibernate 3.0/3.1/3.2的支持。
外部依賴(lài)spring-jdbc,Hibernate3,(spring-web)。
22.spring-toplink.jar
對(duì)TopLink框架的支持。
外部依賴(lài)spring-jdbc,TopLink。
23.spring-ibatis.jar
對(duì)iBATIS SQL Maps的支持。
外部依賴(lài)spring-jdbc,iBATIS SQL Maps。
24.spring-mock.jar
這個(gè)jar 文件包含Spring 一整套mock 類(lèi)來(lái)輔助應(yīng)用的測(cè)試。Spring 測(cè)試套件使用了其中大量mock 類(lèi),這樣測(cè)試就更加簡(jiǎn)單。模擬HttpServletRequest 和HttpServletResponse 類(lèi)在Web 應(yīng)用單元測(cè)試是很方便的。并且提供了對(duì)JUnit的支持。
外部依賴(lài)spring-core。
25.spring-aspects.jar
提供對(duì)AspectJ的支持,以便可以方便的將面向方面的功能集成進(jìn)IDE中,比如Eclipse AJDT。
外部依賴(lài)。
26.spring-agent.jar
Spring的InstrumentationSavingAgent (為InstrumentationLoadTimeWeaver),一個(gè)設(shè)備代理包,可以參考JDK1.5的Instrumentation功能獲得更多信息。
外部依賴(lài)none (for use at JVM startup: "-javaagent:spring-agent.jar")。
27.spring-tomcat-weaver.jar
擴(kuò)展Tomcat的ClassLoader,使其可以使用instrumentation(設(shè)備)類(lèi)。
外部依賴(lài)none (for deployment into Tomcat's "server/lib" directory)。
以上這篇基于Spring中各個(gè)jar包的作用及依賴(lài)(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mac下修改idea的jvm運(yùn)行參數(shù)解決idea卡頓的情況
這篇文章主要介紹了mac下修改idea的jvm運(yùn)行參數(shù)解決idea卡頓的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12springBoot 項(xiàng)目排除數(shù)據(jù)庫(kù)啟動(dòng)方式
這篇文章主要介紹了springBoot 項(xiàng)目排除數(shù)據(jù)庫(kù)啟動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Javaweb-HttpServletResponse的sendRedirectch重定向方式
這篇文章主要介紹了Javaweb-HttpServletResponse的sendRedirectch重定向方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09springboot2.3 整合mybatis-plus 高級(jí)功能(圖文詳解)
這篇文章主要介紹了springboot2.3 整合mybatis-plus 高級(jí)功能,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08maven子模塊相互依賴(lài)打包時(shí)報(bào)錯(cuò)找不到類(lèi)的解決方案
本文主要介紹了maven子模塊相互依賴(lài)打包時(shí)報(bào)錯(cuò)找不到類(lèi)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06SpringBoot整合Minio實(shí)現(xiàn)文件上傳和讀取功能
最近有一個(gè)需求是關(guān)于視頻上傳播放的,需要設(shè)計(jì)一個(gè)方案,中間談到了Minio這個(gè)技術(shù),于是來(lái)學(xué)習(xí)一下,所以本文給大家介紹了SpringBoot整合Minio實(shí)現(xiàn)文件上傳和讀取功能,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-07-07springboot項(xiàng)目中沒(méi)有識(shí)別到y(tǒng)ml文件解決辦法
這篇文章主要給大家介紹了springboot項(xiàng)目中沒(méi)有識(shí)別到y(tǒng)ml文件解決辦法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01詳解Spring MVC/Boot 統(tǒng)一異常處理最佳實(shí)踐
在 Web 開(kāi)發(fā)中, 我們經(jīng)常會(huì)需要處理各種異常,這篇文章主要介紹了詳解Spring MVC/Boot 統(tǒng)一異常處理最佳實(shí)踐,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01