Sping源码 体系架构

jasmine 于 2022-10-04 发布

Spring Framework 5.0.x 模块组成

Spring Framework 5.0.x 模块组成

组件说明

1、spring Data

1)spring-jdbc

提供了一个jdbc的抽象层,包含了spring对jdbc访问数据访问进行封装的所有类

主要类:

2)spring-orm

ORM的全称是Object Relational Mapping,即对象关系映射; 为流行的对象-关系映射 API ,如 JPA、Hibernate、Mybatis等,提供了一个交互层; ORM和habinate,jpa,mybaits等我们常见的与数据交互的框架是什么关系:这些是实现ORM的的几种方式

主要类:

3)spring-oxm

提供在Java对象和XML之间的操作

主要类:

4)spring-jms

Java消息传递服务,包含用于生产和使用消息的功能,集成消息中间件用

主要类:

5)spring-tx

事务模块,支持用于实现特殊接口和所有POJO(普通Java对象)类的编程和声明式事务管理。

主要类:

2、spring Web

1)spring-websocket

4.0以后新增的模块,实现双工异步通讯协议,实现了WebSocket和SocketJS,提供Socket通信和Web端的推送功能

主要类:

2)spring-webmvc

是一个Spring内置的MVC框架,提供【模型-视图-控制】的体系结构模型,为前后端解偶

主要类:

3)spring-web

提供了基本的Web开发集成功能,例如多文件上传功能等; spring-webmvc依赖spring- web,因此包括它会传递性增加spring-web, 如果您不使用Spring MVC,但想利用Spring支持的其他与Web相关的技术,则应该仅依赖spring-web。

主要类:

4)spring-webflux

是一个新的非堵塞函数式Reactive Web框架,可以用来建立异步的,非阻塞,事件驱动的服务,并且扩展性非常好。 Spring WebFlux 是一个异步非阻塞的 Web 框架,所以,它特别适合应用在 IO 密集型的服务中,比如微服务网关这样的应用中。

3、spring-aop

提供了一个符合AOP要求的面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。

主要类:

4、spring-aspects

提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的AOP框架。

5、spring-instrument

是 AOP 的一个支援模块, 提供了类植入(Instrumentation)支持和类加载器的实现,可以在特定的应用服务器中使用。

主要类:

6、spring-messaging

是从 Spring4.0 开始新加入的一个模块,主要职责是为 Spring 框架集成一些基础的报文传送应用。

7、Core Container

1)spring-beans

包含访问配置文件、创建和管理 Bean 以及进行 IOC 操作相关的所有类。

项目分为五个模块:

主要类:

相关文章: Spring beans源码解析

2)spring-core

主要包含 Spring 框架基本的核心工具类,Spring 的其他组件都要用到这个包里的类,Core 模块是其他组件的基本核心;相当于一个创建并管理bean的容器

主要类:

3)spring-context

构建在 Core 和 Beans 模块基础上,提供了类似 JNDI 注册期的框架式的对象访问方法。Context 继承了 Beans 的特性,为 Spring 和行提供了大量扩展,添加了国际化,事件传播,资源加载和 Context 的透明创建的支持。ApplicationContext 接口是 Context 模块的关键。

主要类:

4)spring-expression

提供了强大的表达式语言,用于在运行时查询和操纵对象。支持解析表达式

主要类:

8、spring-test

支持 JUnit 和 TestNG 对 Spring 组件进行测试。

spring 各模块依赖关系

Spring Framework 5.0.x 模块组成