软件项目招标文件技术标书(最全最详细)(2)

2018-12-03 19:52

3、MVC模式

MVC模式是一个用于将用户界面逻辑与业务逻辑分离开来的基础设计模式,它将数据处理、界面以及用户的行为控制分为:Model(模型)-View(视图)-Controller(控制器)。 Model:负责当前应用的数据获取与变更及相关的业务逻辑。可用JAVABEAN来体现; View:负责显示信息。可以使用JSP、VELOCITY模板等技术; Controller:负责收集转化用户的输入。常用一个SERVLET来实现;

View和Controller都依赖于Model,但是Model既不依赖于View,也不依赖于Controller,这是分离的主要优点之一,这样Model可以单独的建立和测试以便于代码复用,View和Controller只需要Model提供数据,它们不会知道、也不会关心数据是存储在SQL Server还是Oracle数据库中或者别的什么地方。

4、 WEB层框架Struts

Struts是一个在JSP Model2基础上实现的MVC框架,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性及可重用性。Struts框架的体系结构如下图所示:

下面就上图所示的体系结构图分析Struts框架中的MVC组件。

? 视图(view):视图部分主要由JSP页面组成,其中没有流程逻辑、业务逻辑和模型

信息,只有标记。Struts自身包含了一组标记库(TagLib),这也是Struts的精华之一,灵活运用它们可以简化JSP页面的代码,提高开发效率。

? 控制器(controller):Struts中的Controller主要是其自身提供的

ActionServlet。ActionServlet接收所有来自客户端的请求并根据配置文件(struts-config.xml)中的定义将控制转移到适当的Action对象。

? 模型(model):Struts没有定义具体Model层的实现,Model层通常是和业务逻辑

紧密相关的,有持续化的要求。目前在商业领域和开源世界,都有一些优秀的工具可以为Model层的开发提供便利。

5、业务逻辑层框架Spring

Spring是一个解决了许多JavaEE开发中常见问题并能够替代EJB技术的强大的轻量级框架。这里所说的轻量级指的是Spring框架本身,而不是指Spring只能用于轻量级的应用开发。Spring的轻盈体现在其框架本身的基础结构以及对其他应用工具的支持和装配能力。与EJB这种庞然大物相比,Spring可使程序研发人员把各个技术层次之间的风险降低。 Spring框架的核心是控制翻转IoC(Inversion of Control)/依赖注入DI(Dependence Injection)机制。IoC是指由容器中控制组件之间的关系(这里,容器是指为组件提供特定服务和技术支持的一个标准化的运行时的环境)而非传统实现中由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”。DI是对IoC更形象的解释,即由容器在运行期间动态地将依赖关系(如构造参数、构造对象或接口)注入到组件之中。Spring采用设值注入(使用Setter方法实现依赖)和构造子注入(在构造方法中实现依赖)的机制,通过配置文件管理组建的协作对象,创建可以构造组件的IoC容器。这样,不需要编写工厂模式、单例模式或者其他构造的方法,就可以通过容器直接获取所需的业务组件。Spring框架的结构如下图所示。

Spring框架由七个定义明确的模块组成,且每个模块或组件都可以单独存在,或者与

其他一个或多个模块联合实现。Spring Core Container是一个用来管理业务组件的IoC容器,是Spring应用的核心;Spring DAO和Spring ORM不仅提供数据访问的抽象模块,还集成了对Hibernate、JDO和iBatis等流行的对象关系映射框架的支持模块,并且提供了缓冲连接池、事务处理等重要的服务功能,保证了系统的性能和数据的完整性;Sprnig Web模块提供了Web应用的一些抽象封装,可以将Struts、Webwork等Web框架与Spring整合成为适用于自己的解决方案。

Spring框架可以成为企业级应用程序一站式的解决方案,同时它也是模块化的框架,允许开发人员自由地挑选适合自己应用的模块进行开发。Spring框架式是一个松耦合的框架,框架的部分耦合度被设计为最小,在各个层次上具体选用哪个框架取决于开发者的需要。

6、持久层框架Hibernate

O/R mapping技术是为了解决关系型数据库和面向对象的程序设计之间不匹配的矛盾而产生的。Hibernate是目前最为流行的O/R mapping框架,它也是开源软件,它在关系型数据库和Java对象之间做了一个自动映射,使得程序员可以以非常简单的方式实现对数据库的操作,它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射,而且还提供数据查询和检索能力,并能大大减少花在SQL和JDBC手工数据处理上的开发时间。Hibernate工作原理如下图所示:

Hibernate通过对JDBC的封装,向程序员屏蔽了底层的数据库操作,使程序员专注于OO程序的开发,有助于提高开发效率。程序员访问数据库所需要做的就是为持久化对象编制xml映射文件。

底层数据库的改变只需要简单地更改初始化配置文件(hibernate.cfg.xml或者hibernate.properties)即可,不会对应用程序产生影响。

Hibernate有自己的面向对象的查询语言HQL,HQL功能强大,支持目前大部分主流的数据库,如Oracle、DB2、MySQL、Microsoft SQL Server等,是目前应用最广泛的O/R映

射工具。Hibernate为快速开发应用程序提供了底层的支持。

(二)、基于SSH框架的Web应用架构分析与设计

前面分析了基于JavaEE的SSH框架技术,现代的企业开发中,越来越多地引入了多层架构设计模式。SSH就是其中之一,SSH架构是当前主流的架构,在很多领域,包括金融、电信项目,大型门户网站均选择该架构作为业务支撑架构,开发流程也已经非常成熟。但是该结构开发起来,依旧存在一些问题。分析这些问题,得先从SSH架构的组成说起。

SSH为Struts+Spring+Hibernate的组成方式,Struts实现MVC,Spring负责架构的结合,Hibernate进行数据的持久化。通常其分层开发的结构图如下:

这样的结构,系统从职责上分为四层:WEB层、业务逻辑层、数据持久层和实体层。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。

系统的基本业务流程是:在WEB表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将

ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。

但是对于当前日益复杂化的WEB2.0的开发,却存在不少问题,归纳起来主要有以下的不足:

? DAO和服务层容易出现职责不明,由于按照MVC逻辑,业务代码应该写在Struts

Action里,但是其事务的提供,却是配置在Service层。为了一组在逻辑上完整的数据操作业务逻辑,需要涉及两个层(Service、Action)来进行编写,遇到判断的情况下,为了保证完整的事务操作,则需要将业务代码移到Service层完成,而通常习惯了在Struts Action里调用多次Service而产生多个事务,但在出现Exception导致出错时,操作之前调用的Service事务的业务数据没有被回滚。 ? 当需要返回的数据供AJAX使用,操作JSON或XML的大量使用时。开发起来会很费

力,一段同样的业务代码,为了使用AJAX和XML可能需要重新编写一次,或者在同一个ACTION里通过标志来判断,对分层结构造成了比较糟糕的破坏。如果设计得不好,为了使用JSON和XML还得额外增加大量的配置,严重降低了开发效率。 因此,为了克服这些缺点,对于SSH架构,进行了重新的分层,共享了业务代码。简化了开发、增强了与AJAX技术、XML技术的结合。提供了一种更高效的开发模式。

其开发的结构图如下:


软件项目招标文件技术标书(最全最详细)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:某老年公寓模式养老院项目融资商业计划书范文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: