spring的jar各包作用
spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,
因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。
除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,
用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。
(1) spring-core.jar这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,
当然你也可以在自己的应用系统中使用这些工具类。
(2) spring-beans.jar 这个jar文件是所有应用都要用到的,
它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。
如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring-beans.jar文件就可以了。
(3) spring-aop.jar这个jar文件包含在应用中使用Spring的AOP特性时所需的类。
使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
(4) spring-context.jar 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,
JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。
(5) spring-dao.jar 这个jar文件包含Spring DAO、Spring Transaction进行数据访问的所有类。
为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。
(6) spring-hibernate.jar 这个jar文件包含Spring对Hibernate 2及Hibernate 3进行封装的所有类。
(7) spring-jdbc.jar 这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。
(8) spring-orm.jar 这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。
这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。
(9) spring-remoting.jar 这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。
(10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。
(11) spring-web.jar 这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,
包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
(12) spring-webmvc.jar 这个jar文件包含Spring MVC框架相关的所有类。
包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。
当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
(13) spring-mock.jar
这个jar文件包含Spring一整套mock类来辅助应用的测试。Spring测试套件使用了其中大量mock类,这样测试就更加简单。
模拟HttpServletRequest和HttpServletResponse类在Web应用单元测试是很方便的。
如何选择这些发布包,决定选用哪些发布包其实相当简单。
如果你正在构建Web应用并将全程使用Spring,那么最好就使用单个全部的spring.jar文件;
如果你的应用仅仅用到简单的Inversion of Control / Dependency Injection(IoC/DI)容器,那么只需spring-core.jar与spring-beans.jar即可;
如果你对发布的大小要求很高,那么就得精挑细选了,只取包含自己所需特性的jar文件了。
采用独立的发布包你可以避免包含自己的应用不需要的全部类。
当然你可以采用其它的一些工具来设法令整个应用包变小,节省空间的重点在于准确地找出自己所需的Spring依赖类,然后合并所需的类与包就可以了
。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
本文转载自网络
举报
打赏
0 赞
0 收藏
分享
作者的其它热门文章
加载中

其他人还在看
你好,我是A哥(YourBatman)。 日期/时间的处理是平时开发中非常常见的场景,若只是简单的格式化场景那就还好,一旦涉及到时区、跨地域跨时区时间转换场景,甚至当还有GMT时间、UTC时间等一堆概念堆上来的时候,总...
前言 ”面向接口编程“写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性、维护性谁都不能拒绝。 最近无意间看到了我刚开始写 ...
以下文章来源于公众号 「iconfontplus」 ,作者前端快爆 2020 终究是一个不平凡的一年,我们经历了太多坎坷与磨炼。甚至受 COVID-19 疫情的影响,Chrome 浏览器罕见的断更了,Chrome 82 就此缺席。但 Web 生态依旧...
在前端js中,this虽然只是其中的一个关键字而已,但是确实一个比较特殊的关键字。为什么说this在js关键字中很特殊呢,原因就在于this是函数在运行时自动生成的一个对象,this的指向在函数定义的时候不是确定的,只...
作者 | 张磊 来源|阿里巴巴云原生公众号 2020 年注定是不凡的。它在阴霾中开始,在惊叹中结束,也让未来变得更加扑朔迷离。那么,容器与云原生的 2020 年呢?你是否记得它是怎样开始的?它又将走向何方? Kubern...
一般情况下技术岗面试都需要经历面试和笔试部分,面试过程中主要采用问答的形式,一般没有完全固定的回答,主要是根据自己的工作经验应答面试官的问题,而笔试部分更注重基础知识以及问题的常规解决方案。下面IT技...
生产者消费者模式最核心的部分是生产者与消费者之间的特殊容器,而阻塞队列是特殊容器最常见的实现。JDK中定义了阻塞队列接口BlockingQueue,JDK通过该接口为我们提供了很多种阻塞队列的实现,其中包括本节的主角...
接着前几天的两篇文章,继续解析JVM面试问题,送给年后想要跳槽的小伙伴 万万没想到,面试中,连 ClassLoader类加载器 也能问出这么多问题..... 万万没想到,JVM内存区域的面试题也可以问的这么难? 三、GC垃圾回...
如何使用 Spring Cloud 2020 中重磅推荐的负载均衡器 Spring Cloud LoadBalancer (下文简称 SCL),如何扩展负载均衡策略? 你将从本文中获取到答案 快速上手 SCL 如果项目中想使用 SCL,则仅需要添加如下 mave...
OpenLookeng简介 OpenLookeng关键特性 OpenLookeng之Connector (待) OpenLookeng之算子下推(待) ..... OpenLookeng 我理解其实就是基于异构数据源上的统一查询引擎。这一层其实可以理解为替换掉Hive。实际底层...
选择专区和圈子:{{title}}
{{o.name}}
{{m.name}}