Spring整体架构和jar包依赖关系详解

正文

以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时必须导入。

  1. Core模块:主要包含Spring框架基本的核心工具类,特别重要
  2. Beans模块:包含访问配置文件、创建和管理bean以及进行Ioc/DI操作相关的所有类
  3. Context模块:构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法
  4.  Expression Languaga模块:提供了一个强大的表达式语言用于在运行时查询和操纵对象

     它们的依赖关系: 

    

(2)Data Access/Integration

  1. JDBC模块:jdbc支持
  2. ORM模块:对象关系映射,集成orm框架,如Hibernate,IBatis
  3. OXM模块:对象XML映射
  4. JMS(Java Message Service)模块:java消息服务
  5. Transaction模块:事务控制

      它们的依赖关系

 

(3)Web:建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文,还简化了处理多部分请求以及将请求参数绑定到域上的工作

  1. spring-web模块:提供了基础的面向web的集成特性,如文件上传
  2. spring-webmvc模块:包含了spring 的mvc实现
  3. spring-websocket:为web应用提供的高效通信工具
  4.  spring-web-portlet模块:提供了用于Portlet环境和web-servlet模块的mvc实现

  它们的依赖关系

        

(4)AOP模块:提供了面向切面编程的实现,将逻辑代码分开,降低它们之间的耦合性

  1. spring-aop:面向切面编程
  2. spring-aspects :Aspects模块提供了对AspectJ(一个面向切面的框架,它扩展了Java语言)的集成支持。
  3. spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器
  4. spring-instrument-tomcat:针对tomcat的instrument实现
  5. spring-messaging:用于构建基于消息的应用程序

       它们的依赖关系

       

     (5)Test模块:

       test部分只有一个模块,我将spring-context-support也放在这吧

  1. spring-test:spring测试,提供junit与mock测试功能
  2. spring-context-support:spring额外支持包,比如邮件服务、视图解析等

  它们的依赖关系

       
更多了解查看官网。

原文:https://blog.csdn.net/m0_37742084/article/details/69870203 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值