正文
以spring3.X为例
jar包详解
1. spring-core.jar:包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心;
2. spring-aop.jar:面向切面编程,提供AOP(面向切面编程)实现;
3. spring-aspects.jar:spring整合了aspectjrt.jar,也可以使用aspectjrt.jar来代替;
4. spring-beans.jar:springIoC(依赖注入)的基础实现,所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行(IoC/DI)操作相关的所有类;
5. spring-context.jar:提供在基础 IoC 功能上的扩展服务,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、 缓存以及各种视图层框架的封装等;
6. spring-context-support.jar:spring-context的扩展支持,包含支持缓存ehcache、JCA、JMX、邮件服务、任务计划Scheduling(Timer、Quartz)方面的类;
7. spring-asm.jar:ASM是小巧轻便的 Java 字节码操控框架 ,它能方便地生成和改造 Java 代码。 Hibernate和 Spring在底层都用到了 ASM(CgLib底层用的 asm);
8. spring-expression.jar:spring表达式语言;
9. spring-instrument.jar:spring3.1对服务器的代理接口;
10. spring-instrument-tomcat.jar:spring3.1对 Tomcat 的连接池的集成;
11. spring-jdbc.jar:包含对Spring对JDBC数据访问进行封装的所有类;
12. spring-jms.jar:提供了对JMS1.0.2/1.1的支持类;
13. spring-orm.jar:对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,(Hibernate已经独立成包)这个jar文件里大部分的类都要依赖spring-dao.jar
14. spring-oxm.jar:spring对Object/XMI的映射的支持,可以让JAVA与XML之间来回切换;
15. spring-struts.jar:整合Struts的支持;
16. spring-test.jar:spring对Junit等测试框架的简单封装;
17. spring-tx.jar:提供对事务的支持;
18. spring-web.jar:Web开发时用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类;
19. Spring-webmvc.jar:如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类;
20. spring-webmvc-portlet.jar:springMVC的增强,支持portlet标准(JSR168/JSR286);
依赖关系
Spring框架
上图将spring分为5个部分:core, aop, data access, web, test。图中每个圆角矩形都对应一个jar。所有这些jar的“groupId”都是“org.springframework”,每个jar有一个不同的“artifactId”,另外,“instrumentation”有两个jar,还有一个“spring-context-support”图中没有列出,所以spring4的jar包一共是20个。
下面介绍这5个部分的jar以及依赖关系:
(1)Core Container:核心容器,下面4个模块jar包在使用spring时必须导入。
- Core模块:主要包含Spring框架基本的核心工具类,特别重要
- Beans模块:包含访问配置文件、创建和管理bean以及进行Ioc/DI操作相关的所有类
- Context模块:构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法
- Expression Languaga模块:提供了一个强大的表达式语言用于在运行时查询和操纵对象
它们的依赖关系:
(2)Data Access/Integration
- JDBC模块:jdbc支持
- ORM模块:对象关系映射,集成orm框架,如Hibernate,IBatis
- OXM模块:对象XML映射
- JMS(Java Message Service)模块:java消息服务
- Transaction模块:事务控制
它们的依赖关系
(3)Web:建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文,还简化了处理多部分请求以及将请求参数绑定到域上的工作
- spring-web模块:提供了基础的面向web的集成特性,如文件上传
- spring-webmvc模块:包含了spring 的mvc实现
- spring-websocket:为web应用提供的高效通信工具
- spring-web-portlet模块:提供了用于Portlet环境和web-servlet模块的mvc实现
它们的依赖关系
(4)AOP模块:提供了面向切面编程的实现,将逻辑代码分开,降低它们之间的耦合性
- spring-aop:面向切面编程
- spring-aspects :Aspects模块提供了对AspectJ(一个面向切面的框架,它扩展了Java语言)的集成支持。
- spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器
- spring-instrument-tomcat:针对tomcat的instrument实现
- spring-messaging:用于构建基于消息的应用程序
它们的依赖关系
(5)Test模块:
test部分只有一个模块,我将spring-context-support也放在这吧
- spring-test:spring测试,提供junit与mock测试功能
- spring-context-support:spring额外支持包,比如邮件服务、视图解析等
它们的依赖关系
更多了解查看官网。
原文:https://blog.csdn.net/m0_37742084/article/details/69870203