spring模块解读

spring框架总体分为6大模块,下面对每个模块进行介绍一下:

这里写图片描述
Spring核心容器
容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建、 配置和管理。在该模块中,包括了Spring bean工厂,它为Spring提供 了DI的功能。基于bean工厂,我们还会发现有多种Spring应用上下文 的实现,每一种都提供了配置Spring的不同方式。 除了bean工厂和应用上下文,该模块也提供了许多企业服务,例如Email、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和iBATIS SQL Maps。Spring的事务管理支持所有的 ORM框架以及JDBC。 本模块同样包含了在JMS(Java Message Service)之上构建的Spring 抽象层,它会使用消息以异步的方式与其他应用集成。从Spring 3.0开 始,本模块还包含对象到XML映射的特性,它最初是Spring Web Service项目的一部分。 除此之外,本模块会使用Spring AOP模块为Spring应用中的对象提供 事务管理服务。

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进行交互 提供了支持。

spring模块的拓展:

Spring Web Flow
Spring Web Flow建立于Spring MVC框架之上,它为基于流程的会话式 Web应用(可以想一下购物车或者向导功能)提供了支持。Spring Web Flow的主页(http://projects.spring.io/spring-webflow/)。

Spring Web Service
虽然核心的Spring框架提供了将Spring bean以声明的方式发布为Web Service的功能,但是这些服务是基于一个具有争议性的架构(拙劣的 契约后置模型)之上而构建的。这些服务的契约由bean的接口来决 定。 Spring Web Service提供了契约优先的Web Service模型,服务的 实现都是为了满足服务的契约而编写的。Spring Web Service 主页(http://docs.spring.io/spring-ws/site/)。

Spring Security
安全对于许多应用都是一个非常关键的切面。利用Spring AOP, Spring Security为Spring应用提供了声明式的安全机制。Spring Security主页(http://projects.spring.io/spring-security/)。

Spring Integration
许多企业级应用都需要与其他应用进行交互。Spring Integration提供了 多种通用应用集成模式的Spring声明式风格实现。Spring Integration的主页(http://projects.spring.io/spring-integration/)。

Spring Batch
当我们需要对数据进行大量操作时,没有任何技术可以比批处理更胜 任这种场景。如果需要开发一个批处理应用,你可以通过Spring Batch,使用Spring强大的面向POJO的编程模型。 Spring Batch的主 页(http://projects.spring.io/ spring-batch/)。

Spring Data
Spring Data使得在Spring中使用任何数据库都变得非常容易。尽管关 系型数据库统治企业级应用多年,但是现代化的应用正在认识到并不 是所有的数据都适合放在一张表中的行和列中。一种新的数据库种 类,通常被称之为NoSQL数据库,提供了使用数据的新方法,这些 方法会比传统的关系型数据库更为合适。不管你使用文档数据库,如MongoDB,图数据库,如Neo4j,还是传 统的关系型数据库,Spring Data都为持久化提供了一种简单的编程模 型。这包括为多种数据库类型提供了一种自动化的Repository机制, 它负责为你创建Repository的实现。

Spring Social
社交网络是互联网领域中新兴的一种潮流,越来越多的应用正在融入 社交网络网站,例如Facebook或者Twitter。如果对此感兴趣,你可以 了解一下Spring Social,这是Spring的一个社交网络扩展模块。 不过,Spring Social并不仅仅是tweet和好友。尽管名字是这样,但Spring Social更多的是关注连接(connect),而不是社交(social)。 它能够帮助你通过REST API连接Spring应用,其中有些Spring应用可 能原本并没有任何社交方面的功能目标。

Spring Mobile
移动应用是另一个引人瞩目的软件开发领域。智能手机和平板设备已 成为许多用户首选的客户端。Spring Mobile是Spring MVC新的扩展模 块,用于支持移动Web应用开发。

Spring for Android
与Spring Mobile相关的是Spring Android项目。这个新项目,旨在通过 Spring框架为开发基于Android设备的本地应用提供某些简单的支持。 最初,这个项目提供了Spring RestTemplate的一个可以用于 Android应用之中的版本。它还能与Spring Social协作,使得原生应用 可以通过REST API进行社交网络的连接。

Spring Boot
Spring极大地简化了众多的编程任务,减少甚至消除了很多样板式代 码,如果没有Spring的话,在日常工作中你不得不编写这样的样板代 码。Spring Boot是一个崭新的令人兴奋的项目,它以Spring的视角, 致力于简化Spring本身。 Spring Boot大量依赖于自动配置技术,它能够消除大部分(在很多场 景中,甚至是全部)Spring配置。它还提供了多个Starter项目,不管 你使用Maven还是Gradle,这都能减少Spring工程构建文件的大小。

猜你喜欢

转载自blog.csdn.net/qq_33269520/article/details/79278252
今日推荐