一、Spring 框架图
二、Spring 框架图说明
1、Spring Data Access/Integration 数据访问与集成
1)Spring-jdbc模块
提供了一个 JDBC 抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析。
2)Spring-orm模块
为流行的对象关系映射(Object-Relational Mapping)API提供集成层,包括JPA、Hibernate、JDO、iBatis 等。使用Spring-orm模块可以将这些O/R映射框架与Spring提供的所有其他功能结合使用,例如声明式事务管理功能。
3)Spring-oxm模块
提供了一个支持对象/XML映射的抽象层实现,例如JAXB、Castor、JiBX和XStream。
4)Spring-jms模块
指Java消息传递服务,包含用于生产和使用消息的功能。自Spring4.1以后,提供了与Spring-messaging模块的集成。
5)Spring-tx模块
支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并且对所有的 POJO(普通Java对象) 都适用
2、Spring Web
1)Spring-websocket模块
Spring4.0以后新增的模块,它提供了WebSocket和SocketJS的实现。
2)Spring-webmvc模块
包含用于web应用程序的Spring MVC和REST Web Services实现。Spring MVC框架提供了领域模型代码和Web表单之间的清晰分离,并与Spring Framework的所有其他功能集成。
3)Spring-web模块
提供了基本的Web开发集成功能,例如多文件上传功能、使用Servlet监听器初始化一个IOC容器以及Web应用上下文。
4)Spring-portlet模块
类似于Servlet模块的功能,提供了Portlet环境下的MVC实现。
3、AOP和Instrumentation
1)Spring-aop模块
提供了一个符合AOP要求的面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。
2)Spring-aspects模块
提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的AOP框架。
3)Spring-instrument模块
提供了类植入(Instrumentation)支持和类加载器classloader的实现,可以在特定的应用服务器中使用。
4)Spring-messaging 模块
Spring4.0以后新增了消息(Spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持。
4、Spring Core Container 核心容器
1)Spring-beans模块
它包含访问配置文件、创建和管理 bean 以及进行 控制反转 I 依赖注入 ( IoC/DI )操作相关的所有类
2)Core : Spring-core模块
主要包含 Spring 框架基本的核心工具类, Spring 的其他组件都要用到这个包里的类, Core 模块是其他组件的基本核心。
3)Context: Spring-context 模块
模构建于 Core 和 Beans 模块基础之上,提供了一种类似JNDI注册器的框架式的对象访问方法。 Context 模块继承了 Beans 的特性,为 Spring 核 心提供了大量扩展,添加了对国际化(例如资源绑定)、事件传播、资源加载和对Context 的透明创建的支持。 Context模块同时也支持 J2EE 的一些特 性, ApplicationContext接口是Context 模块的关键本质区别:(使用BeanFacotry的bean是延时加载的,ApplicationContext是非延时加载的)
4)Spring-expression模块
提供了强大的表达式语言去支持运行时查询和操作对象图。这是对JSP2.1规范中规定的统一表达式语言(Unified EL)的扩展。该语言支持设置和获取属性值、属性分配、方法调用、访问数组、集合和索引器的内容、逻辑和算术运算、变量命名以及从Spring的IOC容器中以名称检索对象。它还支持列表投影、选择以及常用的列表聚合。
5)Spring-context-support模块
支持整合第三方库到Spring应用程序上下文,特别是用于高速缓存(EhCache、JCache)和任务调度(CommonJ、Quartz)的支持。
5、Spring-test模块
支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。