Spring框架模块简述

先贴上官方文档给的图

Spring框架模块简述_第1张图片

可以看到Spring框架包含了大约20个的模块,其中主要模块是Data Access/Integration、Web、AOP、Instrumentation、Messaging、Core Container、Test。

1.Core Cotainer

Core Container包含了spring-core,sping-beans,spring-context,spring-context-support,spring-expression模块。

Spring-core和Spring-beans模块提供框架基本的部分,包括IOC容器和依赖注入,BeanFactory提供工厂单例模式的复杂实现,并且移除了单例编程的需要,允许你在实际程序逻辑解耦配置和依赖性规范。

Spring-context模块通过core 和beans模块提供建立实体基础,方式类似JNDI注册访问对象的一种方法,context继承beans模块并且增加了对国际化的支持(例如使用资源束),事件传播,资源加载以及通过例如servlet容器透明的创建上下文。Context也支持Java EE功能如ejb,jmx和基本远程。Applicationcontext接口时context模块的重点,spring-context-support支持集成常见的第三方库对spring应用程序上下文的支持。

Spring-expression模块在运行时提供强大的表达式语言执行和操作对象视图。它是统一表达式语言规范的拓展,支持通过名称从springIOC容器设置和获取属性值,属性分配,方法调用,访问数组、集合、索引器内容,逻辑和算术运算符,命名变量,取出对象。

2.AOP和Instrumentation

Spring-aop模块提供了符合AOP联合的面向方面的编程实现,允许你定义方法拦截器和切入点,以便简洁的实现应该分离的功能的代码。使用源级元数据功能,您还可以以类似于.NET属性的方式将行为信息合并到代码中。

单独的spring-aspects模块提供与AspectJ的集成。

Spring-instrument模块提供了在某些应用服务器中使用的类仪表支持和类加载器实现。 spring-instrument-tomcat模块包含Spring的Tomcat测试代理。

3.Messaging

Spring Framework 4包含一个Spring消息传递模块,其中包含来自Spring Integration项目(如Message,MessageChannel,MessageHandler等)的关键抽象,以作为基于消息的应用程序的基础。

该模块也包含了一系列方法映射消息的annotations(注解),类似于基于编程模型的springMVC注解。

4.Data Access/Integration数据访问/集成

Data Access/Integration层由jdbc,orm,oxm,jms和事务模块组成。

Spring-jdbc模块提供jdbc抽象层,不需要对数据库厂商规定的JDBC错误信息编码和解析。

Spring-tx模块支持对实现特殊接口和你所有的POJO类的编程和声明式事务管理。

Spring-orm模块提供一个支持对象关系映射的API集成层,比如JPA,JDO,Hibernate。你可以使用spring-orm模块结合其他O/R 映射框架和spring提供的其他功能,比如一个普通的声明事务管理。

Spring-oxm模块提供一个支持对象和xml映射实现的抽象层,如JAXB,Castor,XMLBeans,JiBx,XStream。

Spring-jms模块包含生成和消费消息功能,从spring4.1开始,他集成了spring-messaging模块。

5.Web

Web层由spring-web,spring-webmvc,spring-websocket,spring-webmvc-portlet模块组成。

Spring-web模块提供基本面向网络集成功能比如多部分文件上传功能、通过servlet监听和面向网络应用程序上下文初始化IOC容器。

Spring-webmvc模块包含了对web应用程序spring的模块视图控制器(MVC)和REST Webservices 实现。Spring MVC框架提供了简洁的分离在域模型代码和集成Spring框架所有其他功能之间。

Spring-webmvc-portlet模块提供了在Portlet环境中使用的MVC实现,并反映spring-webmvc模块的功能。

6.Test

Spring-test模块支持spring组件JUnit或者TestNG的单元测试和集成测试,它提供了Spring ApplicationContexts的一致加载和这些上下文的缓存。它还提供可用于孤立测试代码的模拟对象。

你可能感兴趣的:(Spring框架)