spring-framework源码第2弹------Spring的整体架构

简介: Spring 框架是一个分层架构,它包括一系列的功能要素,并被分为大约20个模块,

Spring的整体架构

Spring 框架是一个分层架构,它包括一系列的功能要素,并被分为大约20个模块,如下图所示:

bbb7ed4faf3ee1d35514c5b57e5352b5_70.png

1.Core Container(核心容器层)

Core Container 包含有Core、Beans、Context和Expression Language模块。

Core和Beans模块是框架的基础部分,提供Ioc(控制反转)和依赖注入特性。

  1.Core模块主要包括Spring框架基本的核心工具类,Spring的其他组件都要用到这个包里的类

  2.Beans 模块是所有应用都要用到的,它包含访问配置文件、创建和管理Bean以及进行IOC/DI 操作相关的所有类。

  3.Context 模块构建与Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context模块继承了Beans的特性。ApplicationContext接口是Context模块的核心。

4.Expression Language 模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。它是JSP2.1规范中定义的unifed expression language的一个扩展。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文、容器和索引器、逻辑和算术运算符、命名变量以及从Spring的IOC容器根据名称检索对象。它也支持list投影、选择和一般的list聚合。

2.Data Access/Integration(数据访问层)

Data Access 层包含有JDBC、ORM、OXM、JMS和Transaction模块。其中:

  1.JDBC模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了Spring对JDBC数据访问进行封装的所有类。

  2.ORM模块为流行的对象-关系映射API,如JPA、Hibernate、MyBatis等,提供了一个交互层。利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射。

  3.Transacton 模块支持编程和声明性的事务管理,这些事务必须实现特定的接口,并且对所有的POJO都适用。

3.Web层

Web 上下文模块建立咋应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以Spring 框架支持与Struts2的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到对象的工作。Web层包含了Web、Web-Servelet、Web-Struts和Web-Porlet模块。

  1.Web 模块:提供了基础的面向Web的集成特性。例如,多文件上传,使用servlet listeners初始化IoC容器以及一个面向Web的应用上下文,它还包括Spring远程支持中Web的相关部分。

  2.Web-Servlet模块,该模块包含Spring的model-view-controller(MVC)实现。Spring的MVC框架使得模型范围内的代码和web forms之间能够清楚地分离开来,并与Spring 框架的其他特性集成在一起。

  3.Web-Porlet模块:提供了用于Porlet 环境和Web-Servlet模块的MVC的实现。

4.AOP

AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现。它让你可以定义例如方法拦截器和切点。从而将逻辑代码分开,降低它们的耦合性。利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。


相关文章
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
92 2
|
3月前
|
JSON JavaScript 前端开发
Vue3源码架构简析及Monorepo流程构建
【10月更文挑战第12天】Vue3源码架构简析及Monorepo流程构建
Vue3源码架构简析及Monorepo流程构建
|
2月前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
101 5
|
1月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
168 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
20天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
64 3
|
1月前
|
存储 缓存 Java
Spring面试必问:手写Spring IoC 循环依赖底层源码剖析
在Spring框架中,IoC(Inversion of Control,控制反转)是一个核心概念,它允许容器管理对象的生命周期和依赖关系。然而,在实际应用中,我们可能会遇到对象间的循环依赖问题。本文将深入探讨Spring如何解决IoC中的循环依赖问题,并通过手写源码的方式,让你对其底层原理有一个全新的认识。
57 2
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
143 5
|
2月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
73 9
|
前端开发 Java 数据库
Spring架构及核心模块
1.Hello Spring Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,主要是为了解决企业应用开发的复杂性而诞生的。它采用模块化分层设计,具有以下特点: 轻量低侵入式设计,代码污染极低; 控制反转和依赖注入实现了松散耦合; 切面编程降低业务耦合度,提高程序的可重用性及开发效率; ORM和DAO简化了底层的数据库访问; 方便集成各种优秀框架等。
127 1
Spring架构及核心模块
|
XML Java 数据库连接
今天说一下Spring的架构模块!
这是一个基础知识篇,看到这篇文章的,希望去多多理解一些更多的底层知识,不要不求甚解,要知其然知己所以然。
116 0