先贴上官方文档给的图
可以看到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的一致加载和这些上下文的缓存。它还提供可用于孤立测试代码的模拟对象。