Spring学习(四):一览Spring的风景线

1. 引言

在本系列的第一篇中,我们提到了Spring能够简化很多事情,Spring框架关注于通过DI、AOP和消除样板式代码来简化企业级Java开发。但是,Spring实际上的功能超乎你的想象。在框架之外是一个庞大的生态系统。

2. Spring生态系统

Spring学习(四):一览Spring的风景线_第1张图片

如上图所示,Spring核心容器及容器之外衍生出了许多其他的生态,我们逐一看下这些板块都是做的什么事情:

2.1 Spring核心容器

容器是Spring最核心的部分,管理着bean的创建、配置和管理。分为bean工厂和应用上下文两类。同时该模块也提供了许多企业级的服务,例如E-mail、JNDI访问、EJB集成和调度。总之,所有的Spring模块都构建于核心容器之上。

2.2 面向切面的编程(AOP)

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

2.3 数据访问与集成

使用JDBC编写代码通常会导致大量的样板式代码,例如获得数据库连接、创建语句、处理结果集到最后关闭数据库连接。Spring的JDBC和DAO(DataAccess Object)模块抽象了这些样板式代码,使我们的数据库代码变得简单明了,还可以避免因为关闭数据库资源失败而引发的问题。

2.3 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的良好支持。

2.4 Instrumentation

Spring的Instrumentation模块提供了为JVM添加代理(agent)的功能。具体来讲,它为Tomcat提供了一个织入代理,能够为Tomcat传递类文件,就像这些文件是被类加载器加载的一样。

2.5 测试

鉴于开发者自测的重要性,Spring提供了测试模块以致力于Spring应用的测试

3. 小结

如上,Spring整个生态系统为我们提供了非常大的便利,当然,除了这些Spring Portfolio 还为我们提供了更多的编程模型,在本系列后面的章节中会提到。

你可能感兴趣的:(Spring)