spring框架基础知识了解--适合入门者. 下载本文

定义 什么是 Spring

Spring 是一个开源框架,它由 RodJohnson 创建。它是为了解决企业应用开发的复杂 性而创建的。 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。 [1]◆ 目的:解决企业应用开发的复杂性 ◆ 功能:使用基本的 JavaBean 代替 EJB ,并提供了更多的企业应用功能 ◆ 范围:任何 Java 应 用 简单来说, Spring 是一个轻量级的控制反转 (IoC和面向切面 (AOP的容器框架。

Spring 的历史

要谈 Spring 的历史,就要先谈 J2EE 。 J2EE 应用程序 的广泛实现是在 1999年和 2000年开始的, 它的出现带来了诸如事务管理之类的核心中间层概念的标准化, 但是在实践中并 没有获得绝对的成功, 因为开发效率, 开发难度和实际的性能都令人失望。 曾经使用过 EJB 开发 J2EE 应用的人,一定知道,在 EJB 开始的学习和应用非常的艰苦,很多东西都 不能一下子就很容易的理解。 EJB 要严格地继承各种不同类型的接口,类似的或者重复的 代码大量存在。而配置也是复杂和单调,同样使用 JNDI 进行对象查找的代码也是单调而枯 燥。虽然有一些开发工作随着 xdoclet 的出现,而有所缓解,但是学习 EJB 的高昂代价, 和 极低的开发效率,极高的资源消耗,都造成了 EJB 的使用困难。而 Spring 出现的初衷就是 为了解决类似的这些问题。 Spring 的一个最大的目的就是使 J2EE 开发更加容易。 同时, Spring 之所以与 Struts 、 Hibernate 等单层框架不同, 是因为 Spring 致力于提供一个以统一 的、 高效的方式构造整个应用, 并且可以将单层框架以最佳的组合揉和在一起建立一个连贯 的体系。可以说 Spring 是一个提供了更完善开发环境的一个框架,可以为 POJO(Plain Old Java Object 对象提供企业级的服务。 Spring 的形成,最初来自 Rod Jahnson 所著的 一本很有影响力的书籍《 Expert One-on-One J2EE Design and Development》 ,就是在这 本书中第一次出现了 Spring 的一些核心思想,该书出版于

2002年。另外一本书《 Expert One-on-One J2EE Development without EJB》 ,更进一步阐述了在不使用 EJB 开发 J2EE 企业级应用的一些设计思想和具体的做法。有时间了可以详细的研读一下。 Spring 的 初衷:1、 J2EE 开始应该更加简单。 2、使用接口而不是使用类,是更好的编程习 惯。 Spring 将使用接口的复杂度几乎降低到了零。 3、为 JavaBean 提供了一个更好的 应用配置框架。 4、更多地强调 面向对象 的设计,而不是现行的技术如 J2EE 。 5、 尽量减少不必要的异常捕捉。 6、 使应用程序更加容易测试。 Spring 的目标:1、 可以令人方便愉快的使用 Spring 。 2、应用程序代码并不依赖于 Spring APIs。 3、 Spring 不和现有的解决方案竞争,而是致力于将它们融合在一起。 Spring 的基本组成: 1、 最完善的轻量级核心框架。 2、 通用的事务管理抽象层。 3、 JDBC 抽象层。 4、 集成了 Toplink, Hibernate, JDO, and iBATIS SQL Maps。 5、 AOP 功能。 6、灵活 的 MVC Web应用框架。

Spring 的使命

◆ J2EE 应该更加容易使用。 ◆ 面向对象的设计比任何实现技术(比如 J2EE 都重

要。 ◆ 面向接口编程,而不是针对类编程。 Spring 将使用接口的复杂度降低到零。 (面 向接口编程有哪些复杂度? ◆ 代码应该易于测试。 Spring 框架会帮助你,使代码的测 试更加简单。 ◆ JavaBean 提供了应用程序配置的最好方法。 ◆ 在 Java 中,已检查 异常 (Checked exception 被过度使用。 框架不应该迫使你捕获不能恢复的异常。 Spring 框架简介

Spring :Spring 是一个开源框架,它由 创建。它是为了解决企业应 用开发的复杂性而创建的。 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的 事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角 度而言, 任何 Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控 制反转 (IoC和面向切面 (AOP的容器框架。 轻量 —— 从大小与开销两方面而言 Spring 都是轻量的。 完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。 并且 Spring 所需的处理开销也是微不足道的。此外, Spring 是非侵入式

的:典型地, Spring 应用中的 对象不依赖于 Spring 的特定类。 控制反转 —— Spring 通过一种称作控制反转 (IoC 的 技术促进了松耦合。当应用了 IoC ,一个对象依赖的其它对象会通过被动的方式传递进来, 而不是这个对象自己创建或者查找依赖对象。 你可以认为 IoC 与 JNDI 相反 —— 不是对象从 容器中查找依赖, 而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向 切面 —— Spring 提供了 面向切面编程 的丰富支持,允许通过分离应用的业务逻辑与系统级 服务(例如审计(auditing 和事务(transaction 管理进行内聚性的开发。应用对象只 实现它们应该做的 —— 完成业务逻辑 —— 仅此而已。 它们并不负责 (甚至是意识 其它的系 统级关注点,例如日志或事务支持。 容器 —— Spring 包含并管理应用对象的配置和生 命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建 —— 基于一个 可配置原型(prototype ,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个 新的实例 —— 以及它们是如何相互关联的。然而, Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。 框架 —— Spring 可以将简单的组件 配置、 组合成为复杂的应用。 在 Spring 中, 应用对象被声明式地组合, 典型地是在一个 XML 文件里。 Spring 也提供了很多基础功能(事务管理、持久化框架集成等等 ,将应用逻辑的 开发留给了你。 所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于 测试的代码。它们也为 Spring 中的各种模块提供了基础支持。

Spring 框架的 7个模块

Spring 框架由七个定义明确的模块组成(图 1.1 。

Spring 框架图