解析:Spring体系结构

开课吧开课吧锤锤2021-08-06 14:01

Spring框架采用分层的理念,根据功能的不同划分成了多个模块,这些模块大体可分为DataAccess/Integration(数据访问与集成)、Web、AOP、Aspects、Instrumentation(检测)、Messaging(消息处理)、CoreContainer(核心容器)和Test。如下图所示(以下是SpringFramework4.x版本后的系统架构图)。  

Spring体系结构

上图中包含了Spring框架的所有模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。下面分别对这些模块的作用进行简单介绍。  

1.DataAccess/Integration(数据访问/集成)  

数据访问/集成层包括JDBC、ORM、OXM、JMS和Transactions模块,具体介绍如下。  

JDBC模块:提供了一个JBDC的样例模板,使用这些模板能消除传统冗长的JDBC编码还有必须的事务控制,而且能享受到Spring管理事务的好处。  

ORM模块:提供与流行的“对象-关系”映射框架无缝集成的API,包括JPA、JDO、Hibernate和MyBatis等。而且还可以使用Spring事务管理,无需额外控制事务。  

OXM模块:提供了一个支持Object/XML映射的抽象层实现,如JAXB、Castor、XMLBeans、JiBX和XStream。将Java对象映射成XML数据,或者将XML数据映射成Java对象。  

JMS模块:指Java消息服务,提供一套“消息生产者、消息消费者”模板用于更加简单的使用JMS,JMS用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。  

Transactions事务模块:支持编程和声明式事务管理。  

2.Web模块  

Spring的Web层包括Web、Servlet、WebSocket和Portlet组件,具体介绍如下。  

Web模块:提供了基本的Web开发集成特性,例如多文件上传功能、使用的Servlet监听器的IOC容器初始化以及Web应用上下文。  

Servlet模块:提供了一个SpringMVCWeb框架实现。SpringMVC框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的JSP标签,完全无缝与Spring其他技术协作。  

WebSocket模块:提供了简单的接口,用户只要实现响应的接口就可以快速的搭建WebSocketServer,从而实现双向通讯。  

Portlet模块:提供了在Portlet环境中使用MVC实现,类似Web-Servlet模块的功能。  

3.CoreContainer(Spring的核心容器)  

Spring的核心容器是其他模块建立的基础,由Beans模块、Core核心模块、Context上下文模块和SpEL表达式语言模块组成,没有这些核心容器,也不可能有AOP、Web等上层的功能。具体介绍如下。  

Beans模块:提供了框架的基础部分,包括控制反转和依赖注入。  

Core核心模块:封装了Spring框架的底层部分,包括资源访问、类型转换及一些常用工具类。  

Context上下文模块:建立在Core和Beans模块的基础之上,集成Beans模块功能并添加资源绑定、数据验证、国际化、JavaEE支持、容器生命周期、事件传播等。ApplicationContext接口是上下文模块的焦点。  

SpEL模块:提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。  

4.AOP、Aspects、Instrumentation和Messaging  

在CoreContainer之上是AOP、Aspects等模块,具体介绍如下:  

AOP模块:提供了面向切面编程实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中,这样各司其职,降低业务逻辑和通用功能的耦合。  

Aspects模块:提供与AspectJ的集成,是一个功能强大且成熟的面向切面编程(AOP)框架。  

Instrumentation模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。  

messaging模块:Spring4.0以后新增了消息(Spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持。  

5.Test模块  

Test模块:Spring支持Junit和TestNG测试框架,而且还额外提供了一些基于Spring的测试功能,比如在测试Web框架时,模拟Http请求的功能。  

以上就是开课吧广场小编为大家整理发布的“解析:Spring体系结构”一文,更多Java教程相关内容尽在开课吧广场Java教程频道!  

开课吧广场Java教程

 

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享