疯狂的小鸡

Spring整体架构

字数统计: 953阅读时长: 3 min
2018/10/01 Share

spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块。
Spring分层架构

Core Container

Core Container(核心容器)包含有Core、Beans、Context和Expression Language模块。
Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

Core

Core模块主要包含Spring框架基本的核心工具类。

Beans

Beans模块是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control/Dependency Injection(Ioc/DI)操作相关的所有类。

Context

Context模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context模块继承了Beans的特性,为Spring核心提供了大量扩展,添加了对国际化(如资源绑定)、事件传播、资源加载和对Context的透明创建的支持。ApplicationContext接口是Context模块的关键。

Expression Language

Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操纵对象,该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文、容器和索引器、逻辑和算术运算符、命名变量以及从Spring的IoC容器中根据名称检索对象。

Middle layer

AOP

spring-aop 提供了一个符合AOP联盟标准的面向切面编程的实现。

AspectJ

spring-aspects模块集成AspectJ来实现aop。

Instrumentation

spring-instrument主要为应用服务器提供支持。例如spring-instrument-tomcat就包含了一个tomcat代理服务器。

Messaging

Spring4.0之后的版本提供了spring-message模块用以支持消息驱动的系统。同时提供了将message设置到method的注解。

Data Access/Integration

Data Access/Integration主要包含 JDBC, ORM, OXM, JMS 和 Transaction模块。

JDBC

Spring-jdbc模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码,这个模块包含了Spring对JDBC数据访问进行封装的所有类。

ORM

spring-orm模块为流行的对象-关系映射API,如JPA、JDO、Hibernate、iBatis等,提供了一个交互层,利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射,如前边提到的简单声明性事务管理。

JMS

spring-jms模块主要用于支持消息的生产与消费,4.1后与message模块集成。

OXM

spring-oxm模块模块提供了一个xml-object mapping的抽象层。

Transactions

spring-tx模块为所有POJO及实现了接口特定的类提供程序性和声明性事务支持。

Web

Web层在applicationContext上,为基于Web的应用程序提供了上下文。 Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Web层包含了spring-web, spring-webmvc, spring-websocket 和 springwebmvc-portlet模块。

Web

spring-web模块提供了基础的面向Web的集成特性,例如,多文件上传、使用Servlet listeners初始化IoC容器以及一个面向Web的应用上下文。该模块还包含了对REST Web Service的实现。

Webmvc

spring-webmvc(也称Web-Servlet) 模块该模块包含Spring的model-view-controller(MVC)实现,Spring的MVC框架使得模型范围内的代码和web forms之间能够清楚地分离开来,并与Spring框架的其他特性基础在一起。

Portlet

spring-webmvc-portlet模块:提供了用于Portlet 的MVC的实现。

Test

spring-test模块主要提供单元测试与集成测试的支持,支持Junit与TestNG。同时也提供mock 对象以供测试。

参考文档:
Spring Framework Reference Documentation-4.3.14.RELEASE

CATALOG
  1. 1. Core Container
    1. 1.1. Core
    2. 1.2. Beans
    3. 1.3. Context
    4. 1.4. Expression Language
  2. 2. Middle layer
    1. 2.1. AOP
    2. 2.2. AspectJ
    3. 2.3. Instrumentation
    4. 2.4. Messaging
  3. 3. Data Access/Integration
    1. 3.1. JDBC
    2. 3.2. ORM
    3. 3.3. JMS
    4. 3.4. OXM
    5. 3.5. Transactions
  4. 4. Web
    1. 4.1. Web
    2. 4.2. Webmvc
    3. 4.3. Portlet
  5. 5. Test