Spring实战 第一章 1.3 Spring概览

Spring概览

就像你看到的,Spring通过DI、AOP、消除样板代码来简化Java的企业级开发。即使这些就是Spring的全
部,也是值得使用的。但是真正的Spring还有更多的功能。

在Spring框架中,你会发现一些缓解Java开发的方法。但是Spring框架是一个更大的生态系统,它建立在核
心框架之上,延伸的区域有诸如Web服务、Rest、移动开发和NoSql。

让我们先看看Spring core的功能,然后在查看其它框架的功能。

1.3.1 Spring 模块

当你下载Spring分支并将其保存到文件夹中时,你会发现有很多JAR文件。在Spring 4中,有20个不同的模
块,和3个Jar文件夹(一个二进制文件夹,一个jar文件夹和一个javadoc文件夹)。完整的jar列表如下图:

这些模块可以分为6类功能,如下图:

Spring实战 第一章 1.3 Spring概览_第1张图片

作为一个整体,这些模块给了你开发Java企业应用的一切需要。但是你不必全部使用Spring框架上的东西。
你可以自由选择。Spring甚至提供了跟其他框架或者类库的整合,这样你就不用自己写了。让我们来看看每
一个Spring的模块,他们在Spring框架中的具体功能。

核心Spring容器

Spring框架的核心是一个容器,它管理在Spring中如何创建、配置和管理Bean。在这个模块中,是Spring
的Bean工厂,它提供了DI的功能。构建Bean工厂中,你可以发现Spring Application Context的几个实
现,它提供了不同的方式来配置Spring。

出了Bean工厂和应用上下文,这个模块还提供许多的企业服务,如电子邮件、JNDI访问、EJB集成和调用等。

所有的Spring模块都是构建在核心容器之上,当你配置你的应用程序时,你将隐式地使用到他们。我们整本
书都会探讨该核心模块,从第二章开始,我们会从DI开始。

Spring的AOP模块

Spring提供了丰富多彩的面向切面编程的方法,在该模块中。这个模块作为开发你自己的面向切面编程的应
用程序的基础。像DI一样,AOP支持松耦合。当时使用AOP,是将应用程序广泛的关注点从组件中分离出
来。在第4章我们会深入探讨。

数据访问和集成

JDBC经常导致大量的样板代码,如获取一个连接,创建一个报表,处理一个结果集然后关闭连接等。Spring
的JDBC数据访问对象抽象出了样板代码,你可以保持你的数据访问代码简洁干净,并防止数据库资源的访问
失败导致的问题。该模块还在多个数据库服务器给出的错误信息的上层建立了一个有意义的异常层。不在需
要试图去破译神秘的和专有的SQL错误消息!

对于那些喜欢使用ORM工具的人来说,Spring提供了ORM模块。Spring对ORM的支持建立在DAO的支持
之上,它提供了一个方面的访问层,这个访问层基于几个ORM解决方案建立。Spring不试图去建立自己的
ORM解决方案,但是它提供基于几种流行ORM框架的接口。如Hibernate、Java Persistence API、Java
Data Objects和Mybatis SQL maps。Spring的事务控制也支持所有这些框架。

你会看到,Spring基于模块的抽象大大简化了JDBC的代码。当我们看第10章的Spring数据访问时。该模块
还包含了一个基于Java消息服务(JMS)的抽象与其他应用程序通过异步消息进行集成。

在Spring 3。0中,该模块包含了一个对象到XML的特性。另外,该模块使用Spring AOP模块去提供事务控
制服务。

Web和远程调用(Remoting)

构建Web应用程序,模型视图控制器(MVC)模式是一种被普遍接受的方法。Java不缺MVC框架,如
Struts、JSF、WebWork和Tapestry。尽管Spring集成了几个流行的MVC框架,它自己的Web和远程调用
模块是一个更加灵活、松散耦合的技术。在第5-7章,我们会介绍Spring mvc框架。

出了面向Web应用的用户,该模块还提供了多种远程调用的方法。Spring提供的远程调用包含RMI、
Hessian、Burlap、JAX-WS和Spring自己的Http调用。Spring还对Rest提供了一流的支持。在15章,我们
会学习Spring的远程调用。

仪表盘

Spring的仪表盘模块包含了JVM代理。具体来说,它为传输class文件的Tomcat提供了一个代理。如果这听起来不太懂,不要担心,该模块提供的仪器只有少量的用途,该书其他部分不会涉及。

测试(Testing)

意识到开发人员编写测试的重要性,Spring提供了一个模块,专门用于测试Spring应用程序。
在该模块中,你会对JNDI、servlet和portlets门户编写单元测试代码。对于集成测试,该模块也提供了支持,它可以加载应用程序上下文得到一个Bean的集成,然后让Bean在上下文中工作。

这本书中的很多例子都是测试驱动的,使用了Spring提供的一些测试小工具。

你可能感兴趣的:(spring)