资讯专栏INFORMATION COLUMN

Spring 的模块组成

sumory / 560人阅读

摘要:在中,框架的发布版本包括了个不同的模块,每个模块会有个文件二进制类库源码的文件以及的文件。所有的模块都构建于核心容器之上。的模块在模块中,对面向切面编程提供了丰富的支持。的模块提供了为添加代理的功能。测试提供了测试模块以致力于应用的测试。

在Spring 4.0中,Spring框架的发布版本包括了20个不同的模块,每个模块会有3个JAR文件(二进制类库、源码的JAR文件以及JavaDoc的JAR文件)。完整的库JAR文件如图所示。

这些模块依据其所属的功能可以划分为6类不同的功能,如图所示。

Spring核心容器

容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建、配置和管理。在该模块中,包括了Spring bean工厂,它为Spring提供了DI的功能。基于bean工厂,我们还会发现有多种Spring应用上下文的实现,每一种都提供了配置Spring的不同方式。除了bean工厂和应用上下文,该模块也提供了许多企业服务,例如E-mail、JNDI访问、EJB集成和调度。
所有的Spring模块都构建于核心容器之上。当你配置应用时,其实你隐式地使用了这些类。

Spring的AOP模块

在AOP模块中,Spring对面向切面编程提供了丰富的支持。这个模块是Spring应用系统中开发切面的基础。与DI一样,AOP可以帮助应用对象解耦。借助于AOP,可以将遍布系统的关注点(例如事务和安全)从它们所应用的对象中解耦出来。

数据访问与集成

使用JDBC编写代码通常会导致大量的样板式代码,例如获得数据库连接、创建语句、处理结果集到最后关闭数据库连接。Spring的JDBC和DAO(Data Access Object)模块抽象了这些样板式代码,使我们的数据库代码变得简单明了,还可以避免因为关闭数据库资源失败而引发的问题。该模块在多种数据库服务的错误信息之上构建了一个语义丰富的异常层,以后我们再也不需要解释那些隐晦专有的SQL错误信息了!

对于那些更喜欢ORM(Object-Relational Mapping)工具而不愿意直接使用JDBC的开发者,Spring提供了ORM模块。Spring的ORM模块建立在对DAO的支持之上,并为多个ORM框架提供了一种构建DAO的简便方式。Spring没有尝试去创建自己的ORM解决方案,而是对许多流行的ORM框架进行了集成,包括Hibernate、Java Persisternce API、Java Data Object和MyBatis。Spring的事务管理支持所有的ORM框架以及JDBC。

Web与远程调用

MVC(Model-View-Controller)模式是一种普遍被接受的构建Web应用的方法,它可以帮助用户将界面逻辑与应用逻辑分离。Java从来不缺少MVC框架,Apache的Struts、JSF、WebWork和Tapestry都是可选的最流行的MVC框架。
虽然Spring能够与多种流行的MVC框架进行集成,但它的Web和远程调用模块自带了一个强大的MVC框架,有助于在Web层提升应用的松耦合水平。
除了面向用户的Web应用,该模块还提供了多种构建与其他应用交互的远程调用方案。
Spring远程调用功能集成了RMI(Remote Method Invocation)、Hessian、Burlap、JAX-WS,
同时Spring还自带了一个远程调用框架:HTTP invoker。Spring还提供了暴露和使用REST API的良好支持。

Instrumentation

Spring的Instrumentation模块提供了为JVM添加代理(agent)的功能。具体来讲,它为Tomcat提供了一个织入代理,能够为Tomcat传递类文件,就像这些文件是被类加载器加载的一样。如果这听起来有点难以理解,不必对此过于担心。

测试

Spring提供了测试模块以致力于Spring应用的测试。
通过该模块,你会发现Spring为使用JNDI、Servlet和Portlet编写单元测试提供了一系列的mock对象实现。对于集成测试,该模块为加载Spring应用上下文中的bean集合以及与Spring上下文中的bean进行交互提供了支持。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67724.html

相关文章

  • Spring之旅第一站(不得不佩服老外...)

    摘要:表示少女与紧耦合在它的构造函数中自行创建了。面向切面编程往往被定义为促使软件系统实现关注点的分离一项技术系统由许多不同的组件组成,每个组件各负责一特定的功能。我们可以把切面想象为覆盖在很多组件之上的一个外壳。 第1章 Spring之旅 说明 1、本文抄写了《Spring 实战》重点内容,参考了GitHub上的代码 2、每个人的学习方式不一样,但目的是一样的,活学活用。最近一直在听《我...

    thekingisalwaysluc 评论0 收藏0
  • 撸一个Java脚手架,一统团队项目结构风格

    摘要:这个文件会出现在创建的模板工程中,如果是单模块工程,则是对整个项目的依赖管理如果是多模块工程,该是总文件,该文件中会定义项目的子模块以及对子模块的依赖进行管理等,子模块定义在子模块下,子模块文件只管理子模块的依赖。 虽然maven已经提供了maven-archetype-webapp、maven-archetype-quickstart等项目骨架帮助我们快速构建项目架构,但是默认提供的...

    邱勇 评论0 收藏0
  • SSM框架网站后台搭建(一)

    摘要:传统的代码中,在类中调用其他对象,都是自己出来一个对象,然后调用,这样代码的耦合度就比较高。日志对象和主程序的耦合度降到最低,即使更改日志对象的操作,主程序不受影响。 SSM框架网站后台搭建(一) 1.所用技术简单介绍 1.SSM中的S:Spring Spring在百度词条上的解释是: Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向...

    ZweiZhao 评论0 收藏0
  • 基于spring cloud 微服务实践-模块介绍

    摘要:服务器充当微服务架构体系中的服务注册中心。其他的微服务,使用客户端连接到,并维持心跳连接,系统维护人员可以通过来监控系统中各个微服务是否正常运行。 当前微服务架构逐渐成为系统开发的主流方向,搭建微服务方式可以有多种,例如springcloud、dubbo、k8s等,本系列文章将基于本人参与的实际项目,来介绍基于springcloud搭建微服务的方式,Spring Cloud是一个基于S...

    leanote 评论0 收藏0
  • Spring体系常用项目一览

    摘要:的面向的异常遵从通用的异常层次结构。比如以前常用的框架,现在常用的框架包含许多项目,下面挑一些最常用的出来总结一下。状态是流程中事件发生的地点,在流程中通过转移的方式从一个状态到另一个状态,流程的当前状况称为流程数据。 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪...

    OnlyLing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<