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的元数据功能,还可以将各种行为信息合并到你的代码中。


相关文章
|
8天前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
展望未来,随着5G、边缘计算等新技术的兴起,微服务架构的设计理念将会更加深入人心,Spring Cloud和Netflix OSS也将继续引领技术潮流,为企业带来更为高效、灵活且强大的解决方案。无论是对于初创公司还是大型企业而言,掌握这些前沿技术都将是在激烈市场竞争中脱颖而出的关键所在。
22 0
|
8天前
|
Java 对象存储 开发者
解析Spring Cloud与Netflix OSS:微服务架构中的左右手如何协同作战
Spring Cloud与Netflix OSS不仅是现代微服务架构中不可或缺的一部分,它们还通过不断的技术创新和社区贡献推动了整个行业的发展。无论是对于初创企业还是大型组织来说,掌握并合理运用这两套工具,都能极大地提升软件系统的灵活性、可扩展性以及整体性能。随着云计算和容器化技术的进一步普及,Spring Cloud与Netflix OSS将继续引领微服务技术的发展潮流。
22 0
|
19天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
174 37
|
4天前
|
缓存 Java Spring
手写Spring Ioc 循环依赖底层源码剖析
在Spring框架中,IoC(控制反转)是一个核心特性,它通过依赖注入(DI)实现了对象间的解耦。然而,在实际开发中,循环依赖是一个常见的问题。
13 4
|
9天前
|
XML 缓存 Java
spring源码剖析-spring-beans(内部核心组件,BeanDefinition的注册,BeanWapper创建)
spring源码剖析-spring-beans(内部核心组件,BeanDefinition的注册,BeanWapper创建)
38 10
独家直播|DB-GPT架构设计与源码解读(第一期)
🚀 DB-GPT首期源码解读系列上线啦! 10.8 晚7点,与DB-GPT项目发起人陈发强一起,深入探索DB-GPT的架构设计与源码解读。 🔎 直播看点: ● 架构全剖析:从设计思考到架构逻辑,全面剖析DB-GPT。 ● 源码速度解读:多模型管理、智能体、RAG、AWEL等核心模块一网打尽。 ● 项目作者面对面:陈发强,蚂蚁集团DB-GPT开源项目发起人,分享实战经验与洞见。 ● 有问必答:围绕DB-GPT的使用问题有问必答,线上帮你解issue! 👉 立即扫码预约,与DB-GPT作者零距离交流!
|
9天前
|
XML 存储 Java
spring源码刨析-spring-beans(内部核心组件,beanDefinition加载过程)
spring源码刨析-spring-beans(内部核心组件,beanDefinition加载过程)
|
7天前
|
存储 Java 数据库
Spring Boot 优雅实现多租户架构
本文详细介绍如何使用Spring Boot和Spring Cloud实现多租户架构。多租户架构允许多个租户共用一个应用,各自拥有独立资源和数据。其优势包括满足个性化需求、降低成本、复用代码以及增强可扩展性。文中探讨了架构选型、数据库设计、应用部署及租户管理等内容,并提供了具体实现步骤和技术细节。适用于SaaS应用和多租户云服务等场景。
|
9天前
|
XML 存储 Java
Spring-源码深入分析(二)
Spring-源码深入分析(二)
|
9天前
|
XML 设计模式 Java
Spring-源码深入分析(一)
Spring-源码深入分析(一)
下一篇
无影云桌面