学习Spring源码前必须要清楚的Spring最基本的架构

Spring的整体架构

ps:我看的书比较老,所以有可能一些博客spring介绍的架构必然比我的还要完善,但这不对学习源码有任何影响。
在这里插入图片描述

(1)Core Container

Spring的核心容器,包含了Beans、Core、Context、Expression Language模块。

Core和Beans为Spring的基础模块,提供控制反转(IOC)和依赖注入(DI)的特性支持。Spring的基础容器概念为BeanFactory,它提供经典的工厂模式来实现消除对程序单例模式的需求(意思就是以前需要用到就创建New,现在提前创建好,使用即可),并真正允许从程序逻辑中分离出依赖关系和配置。

Core模块

Spring框架的基本核心工具类,Spring的其它组件都要使用到这个包里的类,Core模块是其它组件的基本核心。

Beans模块

此模块包含访问配置文件、创建和管理bean以及进行Inversion of Control/Dependency Injection(IoC/DI)操作相关的所有类。

Context模块

在Core与Beans模块的基础上,提供一种类似于JNDI注册器的框架时访问对象方法(就和spring容器一样的道理,不用过多了解)。Context模块继承了Beans的特性,为Spring核心提供了大量的扩展,添加了对国际化(例如资源绑定)、事件传播、资源加载和对Context的透明创建支持。Context模块同时支持J2EE的一些特性,例如EJB、JMX和基础的远程处理。ApplicationContext接口是Context模块的关键。

Expression Language模块

提供一个强大的表达式语言用于在运行时查询和操纵对象。

(2)Data Access/Integration

包含JDBC、ORM、OXM、JMS和Transaction模块。模块主要负责与数据相关的。

JDBC模块

模块包含Spring对JDBC数据访问进行封装的所有类。例如我们平常经常在properties下MySQL的数据源配置,甚至还能使用JDBCTemplate封装好的类。

ORM模块

对象关系映射API,如JPA、JDO、iBatis等,提供了一个交互层。

OXM模块

提供一个对Object/XML映射实现的抽象层,Object/XML映射实现包括最经常用得就是XMLBeans。

JMS模块

主要包含一些制造和消费消息的特性。

Transaction模块

支持编程和声明性的事务管理。

(3)Web

建立在应用程序的上下文模块之上,为基于Web的应用程序提供了上下文。简化处理请求以及将参数绑定到域对象的工作

Web模块

提供基础的面向Web的集成特性。例如多文件上传等。

Web-Servlet模块

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

Web-Struts模块

提供对Struct的支持。

Web-Porlet模块

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

AOP

模块提供一个符合AOP联盟标准的面向切面编程的实现。可以定义方法的拦截器和切点,从而将逻辑代码分开,降低他们之间的耦合性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值