资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
智慧抚河信息化工程解决方案X XX XX XX XX XX X 科科技技有有限限公公司司2 20 01 14 4 年年 0 04 4 月月第 2 页目录目录1.1. 项目背景项目背景4 41.1. 概述 .41.2. 现状以及国家政策 .41.2.1. 现状分析 .41.2.2. 国家出台的政策法规及标准 .61.3. 建设目标从而使得应用开发者关心业务逻辑,而Web 设计者关心表示逻辑。3)3) JDBCJDBCJava 数据库连接(Java DataBase Connectivity, JDBC) API 是 JDK 提供的与关系数据库接口的底层 API,现在大多数数据库支持到 JDBC2.0. JDBC API提供针对 SQL 兼容的关系型数据库提供了一组通用的数据库访问方法,使用这些 API,可以实现不同厂商之间的互连和在不同厂商提供的关系型数据库之间进行数据访问。J2EE 通过对 Java 2 标准版提供的核心 JDBC API 进行的扩展,可以提供优化网络资源的连接池和分布事务、行集等高级特性。JDBC 2.0 Optional Package API 同 Java 事务 API 一起实现分布式事务。JDBC 2.0 Optional Package API 提供的连接池比传统的连接池方式更为透明。传统的连接池是一种客户端的连接池,需要客户程序负责实现健壮的连接池机制。而采用 2.0 提供的方式,应用服务器和/或数据库驱动器就能内部的处理连接池池就会自动地工作配置了 J2EE 应用服务器后,只要用数据源对象获取连接,连接这种途径非常简单,系统管理员可以方便的使能和配置连接池,而不用去考虑任何应用程序。4)4) JNDIJNDIJava 命名和目录服务接口(JNDI)被设计来简化对目录基础结构的访问。目录是一种特殊类型的数据库,它提供了对数据存储的快速访问方式。JNDI 提供了标准的 API 来访问任何类型的目录,也可以在网络上存储和检索 Java 对象。命名服务是一个服务,它为一组给定的数据提供创建标准名字的服务。目录服务是命名服务,它包括描述由名字引用的对象的元数据。这就使得可以在元数据上搜索目录服务来找到对象,而不用知道它的名字 27 。在高级网络应用中,目录服务将会是 Java 对象的主要存储手段,当 Java 对象相当稳定的时候,使用目录服务来查找和检索 Java 对象更普遍。第 15 页2.4.2.2.4.2.SpringSpring FrameworkFramework 框架框架Spring 是轻量级的 J2EE 应用程序框架。Spring 的核心是个轻量级容器(container),实现了 IoC(Inversion of Control)模式的容器,Spring 的目标是实现一个全方位的整合框架,在Spring 框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring 希望提供 one-stop shop 的框架整合方案30 。Spring 的核心概念是 IoC,IoC 的抽象概念是依赖关系的转移,像是高层模组不应该依赖低层模组,而是模组都必须依赖于抽象是 IoC 的一种表现,实现必须依赖抽象,而不是抽象依赖实现也是 IoC 的一种表现,应用程序不应依赖于容器,而是容器服务于应用程序也是 IoC 的一种表现。另外,Spring 的架构性的好处如下所述: Spring 能有效地组织你的中间层对象,无论你是否选择使用了 EJB。如果你仅仅使用了 Struts 或其他的包含了 J2EE 特有 APIS 的 framework,你会发现Spring 关注了遗留下的问题。 Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读 Javadoc 乃至源编码吗?有了Spring,你可很简单地看到类的 JavaBean 属性。倒置控制的使用(在下面讨论)帮助完成这种简化。Spring 能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。 使用 Spring 构建的应用程序易于单元测试。 Spring 能使 EJB 的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用 POJOs 或 local EJBs 来实现业务接口,却不会影响调用代码。 pring 帮助你解决许多问题而无需使用 EJB。Spring 能提供一种 EJB 的替换物,它们适于许多 web 应用。例如,Spring 能使用 AOP 提供声明性事务而不通过使用 EJB 容器,如果你仅仅需要与单个的数据库打交道,甚至不需要 JTA 实现31。 第 16 页Spring 为数据存取提供了一致的框架,不论是使用 JDBC 或 O/R mapping 产品(如 Hibernate)。 Spring 也提供 MVC Web 框架的解決方案,但您也可以将自己所熟悉的 MVC Web 框架与 Spring 解合,像是 Struts、Webwork 等等,都可以与 Spring 整合而成为进用于自己的解決方案。Spring 也提供其它方面的整合,像是持久层的整合如 JDBC、O/R Mapping 工具(Hibernate、iBATIS)、事务处理等等,Spring 作了对多方面整合的努力,故说 Spring 是个全方位的应用程序框架32。Spring Framework 概览Spring 包含许多功能和特性,并被很好地组织在如下图所示的七个模块中。本节将依次介绍每个模块。图 Spring 框架概览Core 包是框架的最基础部分,并提供依赖注入(Dependency Injection)特性来使你可管理 Bean 容器功能。这里的基础概念是 BeanFactory,它提供Factory 模式来消除对程序性单例的需要, 并允许你从程序逻辑中分离出依赖关系的配置和描述。 构建于 Beans 包上 Context 包,提供了一种框架式的 Bean 访问方式, 有第 17 页些象 JNDI 注册。Context 包的特性得自 Beans 包,并添加了文本消息的发送,通过比如资源串,事件传播,资源装载的方式和 Context 的透明创建,如通过Servlet 容器。 DAO 包提供了 JDBC 的抽象层,它可消除冗长的 JDBC 编码和解析数据库厂商特有的错误代码。 该包也提供了一种方法实现编程性和声明性事务管理,不仅仅是针对实现特定接口的类,而且对所有的 POJO。 Spring 的 Web 包提供了基本的面向 Web 的综合特性,如 Multipart 功能, 使用 Servlet 监听器的 Context 的初始化和面向 Web 的 Applicatin Context。 当与 WebWork 或 Struts 一起使用 Spring 时,这个包使 Spring 可与其他框架结合。 . Spring Framework 使用场景利用积木方式来描述你在各种场合使用 Spring 的情况, 从 Applet 一直到完整的使用 Spring 的事务管理功能和 Web 框架的企业应用,如下图所示。图 典型的完整 Spring Web 应用一个典型的使用大部分 Spring 特性的 Web 应用,使用第 18 页TransactionProxy FactoryBeans,Web 应用是完全事务性的,就像使用 EJB 提供的那种容器管理的事务一样 所有的你的自定义业务逻辑可以通过简单的POJO 来实现,并通过 Spring 的 Dependency Injection 容器进行管理。其他的服务,如发送 email 和校验,独立于 Web 层, 使你能够决定在哪里执行校验规则。 Spring 的 ORM 支持包含了 Hibernate,JDO 和 iBatis。如使用HibernateDaoSupport,你可复用已经存在的 Hibernate 映射。从 Controller无缝整合 web 层和领域模型,消除对 ActionForms 的需要和其他转换 HTTP 参数为领域模型的类。 第三方框架的 Spring 中间层如下图所示。 图 第三方框架的 Spring 中间层有时,现有情况不允许你彻底地转换到一种不同的框架。Spring 没有 强迫你使用它的全部,它不是一种全有全无 的解决方案。现有的使用WebWork,Struts,Tapestry 或其他的 UI 框架的前端程序可极佳的 与基于Spring 的中间层进行集成,使你可使用 Spring 提供的事务处理特性。 你唯一要做的事是使用 ApplicationContext 来挂接你的业务逻辑和 通过WebApplicationContext 来集成你的 Struts 前端程序。 当你需要通过 WebService 来访问你的现有代码时, 你可使用 Spring 的Hessian-,Burlap-, Rmi- 或者 JaxRpcProxyFactory 类。 使得突然给现有应第 19 页用增加远程访问时不再那么困难。 2.4.3.2.4.3.MVCMVC 设计模式设计模式模型-视图-控制(model-view-control,简称 MVC)结构是目前最常见的J2EE 应用所基于的体系结构,MVC 主要适用于交互式的 Web 应用,尤其是存在大量页面及多次客户访问及数据显示 。在本系统中的模型-视图-控制结构是交互式应用程序广泛使用的一种体系结构。它有效地在存储和展示数据的对象中区分功能模块以降低它们之间的连接度,这种体系结构将传统的输入、处理和输入模型转化为图形显示的用户交互模型,或者换一种说法,是多层次的 Web 商业应用;MVC 体系结构具有三个层面:模型(Model)、视图(View)和控制器(Controller),每个层面有其各自的功能作用,系统的 MVC 体系结构如下图所示。图图- -系统中的系统中的 MVCMVC 体系结构体系结构系统的模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,业 务 处 理查询视图选择改 变 通 知用户指 令模型模型 MODELMODEL 表达和访问商业数据表达和访问商业数据 执行商业逻辑和操作执行商业逻辑和操作 通知视图层模型层变化通知视图层模型层变化 访问其功能函数以完成相访问其功能函数以完成相关关 的任务的任务控制层控制层 ControllerController 定义应用应用程序的行为定义应用应用程序的行为 解释用户的输入,并将它们映解释用户的输入,并将它们映 射为模型层执行的操作射为模型层执行的操作 选择下一个可以显示的视图选择下一个可以显示的视图 基于一组相关的功能设定一个基于一组相关的功能设定一个 控制层的模块控制层的模块视图视图 VIEWVIEW 显示模型层的内容显示模型层的内容 用户输入的内容传送给控制用户输入的内容传送给控制 器器 模型层变化的时候,它将自模型层变化的时候,它将自 动更新动更新 访问其功能函数以完成相访问其功能函数以完成相关关 的任务的任务第 20 页这一层就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。系统的视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传送给控制器。系统的控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作;在一个图形界面中,常见的用户输入包括点击按钮和菜单选择。在 Web 应用中,它包括对 Web 层的 HTTP GET 和 POST 的请求;控制层可以基于用户的交互和模型层的操作结果来选择
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号