Spring 4.x 总体架构

一、架构图

spring framework 总共分为三层,底层是核心层,包含 beans、core、context 和 expression(spel),中间层是封装的J2EE服务(企业层),包含aop、aspects、instrument 和 messaging,最上层是应用层,包含两部分,一部分是数据层,包含jdbc、orm、oxm 和 jms,两一部分是web层,包含web、webmvc(servlet)、websocket 和 webflux,如下图所示:

源码模块如下:

二、核心容器(最底层)

核心容器包含 spring-beans、spring-core、spring-core-coroutines、spring-context、spring-context-indexer、spring-context-support、spring-expression,功能分别如下:

spring-beans 和 spring-core :spring的框架基础,包括 IOC 控制反转功能,其中 BeanFactory 是工厂模式的实现,将bean的配置和依赖从特定的程序中解耦出来

spring-context:它是建立在 spring-beans 和 spring-core的基础之上的,功能有创建上下文、国际化的支持、事件广播、资源加载等,ApplicationContext 是spring-context 的重点

spring-context-support:提供对常见第三库的支持,集成到 spring-context (上下文)中,第三方库比如缓存(ehcache、guava)、通信(javamail)、调度(quartz、commonj)、模板(freemarker、velocity)等

spring-expression:提供了强大的表达式语言(SPEL),用来在运行时查询和操作对象图,这种语言支持对属性值、属性参数、方法调用、数组内容存储、集合和索引、逻辑和算数操作及命名变量,并且通过名称从spring的控制反转容器中取回对象。

三、J2EE封装层

J2EE 封装层包含 spring-aop、spring-aspects、spring-instrument 和 spring-messaging,功能分别如下:

spring-aop、spring-aspects:spring-aop提供面向切面编程实现、spring-aspects 提供了aop中的aspectj 的集成和实现

spring-instrument:提供类级的工具支持和 ClassLoader 级的实现,用于服务器

spring-messaging:提供基于消息的基础服务,比如Message、MessageChannel、MessageHandler,这个模块是spring4新加的模块,从spring集成中分离出来的

四、应用层

4.1、数据访问/集成

数据访问/集成包含 spring-oxm、spring-orm、spring-jdbcspring-jms ,功能分别如下:

spring-oxm:提供抽象层用于支持 Object/XML Mapping 的实现,比如 JAXB、XStream等

spring-orm:提供对象关系映射API集成层,比如 Hibernate、JPA等

spring-jdbc:提供了不需要编写冗长的JDBC代码和解析数据库厂商特有的错误代码的JDBC抽象层,通俗讲就是提供了 sql 语句层

spring-jms:提供了生产和消费消息的功能,和 spring-messaging 模块结合使用,实现对消息的处理

4.2、web 应用

web 应用包含 spring-web、spring-webflux、spring-webmvcspring-websocket,功能分别如下:

spring-web:提供了基本的面向web开发的集成功能,比如文件上传、web开发应用程序上下文初始化IOC容器,也包含 HTTP 客户端以及 Spring 远程访问支持的 web 相关部分

spring-webmvc:这个是我们熟悉的 MVC,即 Model - View - Controller,包含 Rest web services实现的web应用程序

spring-websockt:提供了web应用程序中的 socket 链接服务

spring-webflux:提供了对反应式 HTTP、服务器推送事件和 WebSocket 的客户端和服务器端的支持

猜你喜欢

转载自blog.csdn.net/ywlmsm1224811/article/details/103406821