关键步骤如下。
- 了解 Spring 的优点
- 了解 Spring 的整体架构
4.1.1 传统Java EE 开发
在学习 Spring 之前,先了解一下企业级应用。企业级应用是指为商业组织、大
型企业创建并部署的解决方案及应用。这些大型企业级应用的结构复杂,设计的外
部资源众多,事务密集、数据规模大、用户数量多,有较强的安全性考虑和较高的
性能要求。
企业级应用绝不可能是一个个的独立系统。在企业中,一般都会部署多个交互的
应用,同时这些应用又有可能与其他企业的相关应用连接,从而构成一个结构复杂的、跨
越 Internet 的分布式企业应用集群。此外,作为企业级应用,不但要有强大的功能,还要
能够满足未来业务需求的发展变化,易于扩展和维护。
传统 Java EE 在解决企业级应用问题时的 “重量级”架构体系,使它的开发效率、
开发难度和实际性能都令人失望。当人们苦苦寻找解决办法的时候,Spring 以一个“救
世主”的形象出现在广大 Java 程序员面前。说道 Spring ,就要提到 Rod Johnson,2002
年他编写了 《Expert One-on-One Java EE Design and Development》一书。在书中,他对
传统 Java EE 技术的日益臃肿和低效提出了质疑,他觉得应该有更便捷的做法,于是提出了
Interface 21,也就是 Spring 框架的雏形。他提出了技术应以实用为准的主张,引发
了人们对“正统” Java EE的反思。2003年2月,Spring 框架正式成为一个开源项目,
并发布于 SourceForge 中。
Spring 致力于 Java EE应用的各种解决方案,而不仅仅专注于某一层的方案。可以
说,Spring 是企业应用开发的 “一站式”选择,贯穿表现层、业务层和持久层。并且
Spring 并不想取代那些已有的框架,而是以高度的开放性与它们无缝整合。
4.1.2 Spring 整体架构
Spring 确实给人一种格外清新的感觉,仿佛微雨后的绿草从,蕴藏着勃勃生机。
Spring 是一种轻量级框架。它大大简化了 Java 企业级开发,提供强大、稳定功能的同
时并没有额外负担。Spring 有两个主要目标:一是让现有技术更易于使用,二是
养成良好的编程习惯(或者成为最佳实践)。
作为一个全面的解决方案,Spring 坚持一个原则:不重新发明轮子。已经有较好解决
方案的领域,Spring 绝不做重复性的实现。例如,对象持久化和 ORM,Spring只是对
现有的 JDBC、MyBatis、Hibernate 等技术提供支持,使之更易用,而不是重新实现。
Spring 框架由大约 20 个功能模块组成。这些模块被分为六个部分,分别是
Core contaiener、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、
Instrumentation 及Test,如图4.1所示。
图 4.1 Spring 体系结构
Spring Core 是框架的最基础部分,提供了IoC特性。Spring Context 为企业级开发
提供了便利的集成工具。Spring AOP是基于 Spring Core 的符合规范的面向对象切面编程的
实现。Spring JDBC提供了 JDBC 的抽象层,简化了 JDBC编码,同时使代码更健壮。
Spring ORM 对市面上流行的 ORM 框架提供了支持。Spring Web 为Spring 在Web 应用
程序中的使用提供了支持。关于 Spring 的其他功能模块在开发中的作用,可以查阅
Spring 的文档进行了解,这里不再赘述。