天天看点

Spring生态系统(Spring可能大家都在用,很少去关注整体架构)

Spring的整体架构

1、Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块[5]:

2、Core Container 核心容器

核心部分分为4大块,spring-core, spring-beans, spring-context, spring-expression. 其中core和bean是整个框架的核心,提供了基础的DI(依赖注入)和IOC(控制反转)功能。 Context建立在core和beans模块之上,提供一种类似JNDI且以框架的方式来操作对象的方式。Context模块从beans模块继承它的功能同时增加了国际化支持,如资源绑定等,同时,Context模块也支持JavaEE功能,如EJB,JMX和基本的远程调用。ApplicationContext接口是context模块的焦点。expression是一种很强大的expression language,支持在运行时查询和操作对象的属性,我们会在后面的文章中举些例子来说明spring expression language的用法。

3、AOP and instrumentation

Aop模块提供了面向切面编程的实现,和AspectJ集成。

4、Messaging

Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。

5、Data Access/Integration

Data access顾名思义,是spring对数据层提供的支持,是功能比较丰富的模块。提供了包括JDBC,事物,ORM,JMS等一系列实现。

6、Web

Web模块主要提供面向web的一些实现,例如多文件上传,servlet监听器以及spring mvc方面的支持。

7、Test

Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。