应用层Spring框架技术及系统架构

上传人:ji****72 文档编号:37649066 上传时间:2018-04-20 格式:DOC 页数:21 大小:1.34MB
返回 下载 相关 举报
应用层Spring框架技术及系统架构_第1页
第1页 / 共21页
应用层Spring框架技术及系统架构_第2页
第2页 / 共21页
应用层Spring框架技术及系统架构_第3页
第3页 / 共21页
应用层Spring框架技术及系统架构_第4页
第4页 / 共21页
应用层Spring框架技术及系统架构_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《应用层Spring框架技术及系统架构》由会员分享,可在线阅读,更多相关《应用层Spring框架技术及系统架构(21页珍藏版)》请在金锄头文库上搜索。

1、CHAPTER1第 1 章 应用层 Spring 框架技术及系统架构Spring 框架技术实际上是 Rod Johnson 在 Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。Spring 框架 为 J2EE 平台的开发者提供的是一种“对象管理”技术,也就是为开发者解 决包括 对象的生命周期、对象之间的依赖关系建立、对象的缓存实现 等方面问题的管理技术。 Spring 框架是一个轻量级的控制反转(IoC)技术和面向切面编程 (AOP)技术的容器框架,利用 Spring 框架中的 IoC 技术可以实现 J2EE 平 台

2、中所倡导的由容器实现对象的生命周期管理,而利用 Spring 框架中的 AOP 技术可以实现 J2EE 平台中所倡导的分离应用系统中业务逻辑组件和通 用的技术服务组件。应用系统的开发者在应用系统中应用 Spring 框架后能 够达到“解耦”和“脱离容器”的设计和实现的目的。 本章重点介绍应用层 Spring 框架技术及系统架构,主要涉及 Spring 框 架的特性、Spring 框架的 IoC 和 DI 以及 Spring IoC 与 GoF 设计模式的工厂 模式的对比;同时也还介绍 Spring 框架的架构的特性以及 Spring 框架的设 计目标等方面的内容;最后再通过具体的应用示例实现,

3、让读者体验 Spring 框架中 IoC 技术给应用系统的开发所带来的便利。1.1 应用层 Spring 框架技术1.1.1 Spring 框架的特性1关于 Rod Johnson 的 Expert One-on-One J2EE Design and Development 一书1)Spring 框架技术的起源 Spring 框架技术起源于 Spring 框架的主设计者 Rod Johnson 的 Expert J2EE 项目实训Spring 框架技术2One-on-One J2EE Design and Development 一书,此书已经由电子工业出版社出版,翻译版 名为J2EE 设计

4、开发编程指南 ,参见图 1.1 中某图书网站对该书的简要介绍。图 1.1 J2EE 设计开发编程指南一书的简要介绍同时,一种新的 Java 框架技术Spring 框架技术也相应发布,Spring 框架技术也出 自 Rod Johnson 之手。 2)Spring 框架技术的产生 Spring 框架技术实际上是 Rod Johnson 在 Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。在该书中,Rod Johnson 倡导 J2EE 实 用主义的设计思想,并随书提供了一个初步的开发框架实现,也就是 Interface

5、21 开发软 件包。Spring 框架技术正是这一思想的全面和具体的体现。 3)Spring 框架的设计者 Rod Johnson Rod Johnson 在 Interface21 开发包的基础之上,进行了进一步改造和扩充,使其发展 成为一个更加开放、清晰、全面、高效的 J2EE 平台中的应用层开发框架。2Spring 框架属于应用层框架1)Spring 框架提供的是一种“对象管理”技术 在 Spring 框架中为应用系统的开发者提供的是“对象管理”技术,也就是为开发者 解决包括对象的生命周期、对象之间的依赖关系建立、对象的缓存实现等方面问题的管理 技术。而“对象管理”是每个面向对象编程的程

6、序员都要面临的问题,将程序员从烦琐、 单调和重复的编程工作中解脱出来,正是 Spring 框架的价值所在。 2)Spring 框架技术的目标是实现一个全方位的整合框架 在 Spring 框架中包含有多个不同的子框架(或者称为组件) ,比如 Spring AOP、Spring DAO、Spring ORM、Spring Web 和 Spring MVC 等。而这些子框架之间彼此 可以独立,也可以使用其他的第三方框架方案替代其中的某个子框架。因为 Spring 框架 采用的是分层设计的架构,这样将允许系统开发者独立地应用各个子框架来构建应用系统 或者结合已有的其他框架共同构建应用系统。3传统的 J

7、2EE 系统开发技术在现今的应用开发中所面临的问题1)J2EE 技术及发展回顾 J2EE 技术平台的标准化特性大大提升了企业级应用系统开发的开放程度,并且得到第 1 章 应用层 Spring 框架技术及系统架构3了整个行业和众多上下游厂商、开发者的广泛认可。同时凭借 Java 语言所具有的平台无 关性,对当时的企业级应用系统的开发产生了一定的促进作用。然而,J2EE 在一些应用方面也表现出不尽如人意之处,如低效、复杂以及依赖容器 等导致应用系统的开发成本比较高、系统开发周期比较长。对 J2EE 平台的一些相关技术 不满意的呼声也渐渐出现。 2)J2EE 技术平台(EJB)的主要问题 由于要采用

8、多层架构设计和实现,因此如果应用系统设计不良好时,将导致系统编码实现比较复杂、单元测试比较难实施,并且无法有效控制开发周期。 由于可选择和可应用的相关技术太多,以及应用范围太大,而导致开发者在学习方面的成本比较高,需要系统地学习和掌握各个方面的相关知识,无法使初学者快速上手和迅速进入开发状态。 另外,早期的 J2EE 平台中的标准技术只注重中、大型企业级系统的应用开发和实现,而忽视小型系统的开发和实现的需求,不容易开发和实现可伸缩性好的中、小型系统。合理并正确应用 J2EE 技术平台中的各个方面的应用技术来开发系统,其实并不是一件轻松的事情,因为开发者在应用某些具体的技术时需要仔细考虑和权衡各

9、种技术的具体应用,以及应用某种技术后,可能会给应用系统带来的各种可能的负面作用。3)拒绝使用 EJB 组件技术并不意味着拒绝 J2EE 平台中一些良好的思想和解决方案J2EE 平台下的企业级应用系统的开发者所要明确的是,拒绝使用 EJB 组件技术并不意味着拒绝 J2EE 平台中一些良好的解决方案和优秀的设计思想。比如,对象的生命周期管理、容器提供基础功能服务(达到分离应用组件和基础服务组件的思想)等。每个企业应用系统都需要这些基础服务。但开发者应该如何利用现有的框架来提供这些基础服务以减轻企业在信息化系统建设方面投资的负担呢?伴随着这个问题的提出,一个轻量级的 J2EE 解决方案出现了:是否可

10、以在轻量级平台中应用 J2EE EJB 组件中的各种核心技术?4利用 Spring IoC 和 AOP 实现 J2EE EJB 类似的主要技术Spring 框架是一个轻量级的控制反转(IoC)技术和面向切面编程(AOP)技术的容 器框架。在 Spring 框架技术中又是如何实现类似 EJB 组件的主要技术特性呢? 1)标准 J2EE 技术平台中的主要的核心思想 容器实现对象的生命周期管理。 分离应用逻辑组件和通用服务组件。 应用服务器容器可以管理各个组件的事务并可以跨组件的隔离(如 EJB CMT 特性) 。 2)利用 Spring 框架中的 IoC 实现 J2EE 平台中所倡导的由容器实现对

11、象的生命周期 管理 Spring 框架技术中提供了 IoC(控制反转)机制,借助于依赖注入设计模式,使得J2EE 项目实训Spring 框架技术4开发者不再需要自己来管理所依赖的目标对象自身的生命周期及其关系,这样能够 改善开发者对 J2EE 和 GoF 设计模式中的各种模式的具体应用。 由于 Spring IoC 中所要求的 JavaBean 组件类为普通的 Java 类(Plain Ordinary Java Object,POJO) ,而不像 EJB 组件那样必须实现某个特定接口的要求,从而达到了 轻量级的实现目标。 3)利用 Spring 框架中的 AOP 实现 J2EE 平台中所倡导

12、的分离应用逻辑组件和通用服 务组件 借助于 Spring 框架技术中所提供的 Spring AOP,能够达到类似“容器”提供基础 功能服务的目标。 因为借助于 Spring AOP 中所提供的各种拦截器(Interceptor)和各种通知 (Advice)技术,开发者能够实现以声明式的方式来使用企业级服务,比如安全性 服务、事务服务、缓存服务等。 在 Spring 框架中为什么要提供对 AOP 的具体实现?除了上述两个方面的目的以外, 还允许用户实现自定义的切面功能,用 Spring AOP 中所提供的各种类型的通知和拦截器 来进一步完善面向对象的编程(OOP)技术的应用。 4)Spring

13、IoC 和 Spring AOP 组合在一起形成了完整的 Spring 框架技术 没有 Spring IoC 的 Spring AOP 是不完整的,当然没有 Spring AOP 的 Spring IoC,其 最终的结果将是不健壮的。因此,可以这样认为:Spring 框架 = IoC + AOP。5基于 Spring 框架的应用系统开发所体现出的主要的优点:“解耦”和“脱离容器”1)对于系统设计者能够在设计方面达到“松耦合”的系统设计目标 (1) “松耦合”的系统设计目标。 “松耦合”的系统设计一方面主要体现在应用系统中的各个部分之间(包括应用系统 的核心类代码之间、应用系统与其所在的框架平台

14、之间)尽量形成一种松耦合的结构,这 使得应用系统具有更好的灵活性和可扩展性;另一方面也体现在应用系统与其所在的底层 应用服务器平台的解耦上。(2)在 Spring 框架中如何实现上面两种形式的解耦。 应用系统内部的类之间的解耦主要通过一种称为控制反转(IoC)的技术来实现,应 用系统与底层应用服务器平台的解耦则是借助其所提供的 Spring AOP 技术来实现。因为 在 Spring 框架中内置了对 AOP 的具体实现,这将使得一些本来必须由 J2EE 应用服务器 容器所支持的功能,比如事务管理控制、安全管理和身份验证等方面的技术实现可以脱离 J2EE 应用服务器容器而能够在容器外的普通 Ja

15、va 虚拟机(JVM)环境中运行。 2)对于系统实现者能够简化 J2EE 平台中的一些复杂的应用实现技术, 并养成“面向 接口编程实现”的良好的编程习惯 利用其对象“延时依赖注入”思想组装代码和建立代码之间的关系,这样一方面减 少了在使用这些对象的客户程序中的大量代码,另一方面也提高应用系统的扩展性 和灵活性,最终真正地实现插件式编程和开发实现。 利用 Spring 框架对 AOP 的具体支持,达到集中处理应用系统中的业务逻辑并分离第 1 章 应用层 Spring 框架技术及系统架构5附加技术支持和实现的代码,从而减少代码的重复以构建出简洁和优雅的解决 方案。 利用 Spring 框架对其他框

16、架的支持,比如对 Hibernate 的 SessionFactory 组件、事 务管理等方面的封装,更简洁地应用和集成 Hibernate 等 O/R Mapping 框架和其他 的框架技术(如 Struts 等) 。 3)如果开发者不应用 Spring 框架及其各个相关的组件,将额外需要编程实现许多 代码 同时这些代码与由 Spring 框架提供的功能相比效果又怎样?比如事务处理、JDBC 数 据库访问等实现。可能会出现“花了精力但效果不好”的局面。 根据 AOP 中所倡导的分离应用系统中的核心关注点和横切关注点的基本原则,计算 机的应用开发者应该更多地把主要精力放在应用系统的业务逻辑功能的实现方面,以便交 付出有业务价值的信息化系统;而不应该过多地花费时间和精力来解决普通的计算机应用 中的技术问题,如事务管理、安全管理、对象缓存和数据库连接池等技术的实现。1.1.2 Spring 框架中的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号