Spring源码分析-Spring framework preview
本系列文章基于Spring framework 5.2
Spring 框架是一个分层架构,它包含一系列功能模块,分为大约20个模块,如下图所示:

核心容器 core container:
Core和Beans模块是整个框架中最核心的部分。
Core模块提供了spring框架其他模块所需要的基本工具类。
Beans模块包含访问配置文件、创建Bean、管理Bean以及控制反转(IoC)和依赖注入(DI)。
Context模块主要是对Spring运行时上下文的管理,支持资源加载、事件传播、国际化、透明创建等。ApplicationContext是Context的关键。
什么是事件传播?
就是通过实现观察者模式(发布-订阅模式),来监听指定事件。当监听被触发时执行一系列既定操作。
简单说就是事件监听,C监听了B,B监听了A,那么当A执行时会触发B,继而触发C等等一系列操作。这就是事件传播。
Context是对运行时上下文负责的,比如程序启动时,ContextStartedEvent事件会被触发,来执行一些资源加载的操作。
再比如程序结束时ContextStoppedEvent事件将被触发,来处理一些资源的释放操作、网络连接的关闭操作等。
Context的四大事件:ContextClosedEvent / ContextStartedEvent / ContextRefreshEvent / ContextStoppedEvent.
Expression Language提供了表达式语言。用于在运行时查询和操纵对象。
简单介绍其他模块的作用:
AOP:提供了 一个符合 AOP 联盟标准的面向切面编程的实现,它让你可以定义例如方
法拦截器和切点,从而将逻辑代码分开,降低它们之间的调合性 。
Web:提供Web支持。
Data access/Integration:包含JDBC、ORM、OXM、JMS、Transaction模块。
Test:单元测试,支持JUnit和TestNG。

浙公网安备 33010602011771号