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。

posted @ 2020-01-25 18:07  hucat  阅读(53)  评论(0)    收藏  举报