j2ee的企业资产管理系统网上采购模块分析_第1页
j2ee的企业资产管理系统网上采购模块分析_第2页
j2ee的企业资产管理系统网上采购模块分析_第3页
j2ee的企业资产管理系统网上采购模块分析_第4页
j2ee的企业资产管理系统网上采购模块分析_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毛毛手稿 J2EE的企业资产管理系统网上采购模块的设计与实现摘 要随着经济一体化进程的加快与互联网信息技术的飞速发展,企业的信息化的步伐也逐渐加快,从通常的手工操作到办公自动化套件的广泛应用,再到各式各样企业管理平台的大量实施,以及将来向一体化的方向进展,我国的企业信息化经历了一个技术化层面从低到高,集成化程度从分散到集中,管理理念不断更新,管理方式逐渐走向成熟的过程。期问涌现出许多优秀的管理平台,资产管理系统(EAM)就是其中比较有影响力的一款。EAM系统下的采购管理作为供应链管理的一个重要环节,日渐显示出其重要性。要想在信息化的浪潮中提高企业竞争力,建立一套适合企业发展的资产管理系统势在必行,而其中网上采购模块是其中的一个重要角色。本系统基于B/S模式,采用应用广泛的J2EE开发平台、设计与实现了EAM资产管理系统,满足了企业管理信息化的需求。系统分为四个模块:网上采购、资产核查、资产申请申报、系统管理。其中网上采购管理模块目录管理、信息发布、报价系统构成。本文围绕设计与实现EAM采购管理系统,首先对采购管理系统的流程进行了详细分析,以及各个模块与网上采购系统的关系,明确了需求:然后根据采购管理系统的需求分析,设计了采购管理系统的总体与详细架构,并在此基础上设计了相应的数据库;最后展示了采购管理系统的运行效果。关键词:J2EE,EAM,Struts,MVC,采购管理系统,ABSTRACTWith the rapid development of the economic globalization and informationtechnology such as the Internet,computer technology and network technology,companies accelerate thepace of informationizationFrom usual manual to extensive use of office automationsoftware,to the kinds of various enterprise management platformS implementationand futureS direction ofthe integration progressour countryS informationization ofcompany in technology level from low to high,the degree of integration fromdecentralized to centralized,develop management theories and management modemove to maturityDuring the emergence of many excellent system,EAM is one of themore influentialEAM procurementmanagement as an important part of supply chain management,it is increasingly importantIn order to improving the competitive of enterprise,establishingprocurement management system which adapt to enterprise is imperativeThis paper bases on B/S system ,adopt J2EE development platform,design and implement all EAM procurement management system,achieve the enterprise procurement management information requirementsThe EAM procurement management system involve four sub-modules related, such as procurement module,materials check module, purchase order module,system manage moduleAnd the procurement module divided into 3 specific modulesThe paper focuses on Catalogue manage Module,InformationModule,Price Reporting Module.Then,with the requirements of EAM procurement management system,we determine the architecture of the system,functional designing,and scheme out the databasesAt last,the paper demonstrates the runtime effectiveness of some modules,concludes the characteristics and limitations of the system,and points out the prospect of future workKey Words:J2EE,EAM,Struts,MVC,Procurement Management System第1章 引言1.1 选题的目的和意义企业从采购、生产、销售到全面预算,处于一个迅速变化且难于预测的买方市场,为了提高竞争力,需要采取更加先进的制造技术与管理方法,做出快速响应。而实现按期交货,满足客户的需求,第一个环节就是采购。因此,采购作为企业运作的核心环节,其地位举足轻重。采购工作为了企业生产与管理,以及时、按质与按量的要求供应所需的物资,以最小的物资储备达到最佳的供货状态。避免物资的积压与缺料对于一个企业来说至关重要。因此,有必要创建可以集成在EAM的采购管理系统,以适应电子商务时代企业发展的需要。该采购管理系统是EAM系统中物流、生产流、资金流中物流与资金流的重要组成部分,在保障信息在不同部门之间的正常流动,按时交货与降低成本起着重要作用。本EAM系统面向中小型制造企业、适用于多行业的、可根据具体业务需求进行功能裁减并支持企业业务流程重组。并在广州、珠三角乃至全国制造企业中推广应用,逐步实现产业化。机械制造业主要通过对原材料的加工,改造与组装成为市场所需要的产品。主要包括机械加工、机床加工与组装性行业。其中涉及的工业领域主要有机械设备、汽车、造船、飞行器、机车与日用器具等等。1.2 企业资产管理系统的发展状况工业发展经历了从手工作坊到机械化、自动化再到集成化的变迁,因此各个时期的检修方式也随之不断更新和发展。从总体上看,可分为以下几个阶段: 第一阶段:事后维修和预防性维修(从18世纪第一次产业革命到20世纪初)。事后维修是指当设备发生故障时进行的非计划性维修,预防性维修即实施定期的点检及早期维护。第二阶段:经济检修(从20世纪初至80年代),随着科学技术的发展,检修方式也变的多种多样,于是就产生了以节约成本为宗旨的综合检修方式。即将各利一检修方式根据需要,有机地结合在一起的检修方式。其显著的特点是设备现代化、管理现代化。第三阶段:状态和预知维修(从20世纪80年代至今)。依靠盟测设备,对设备运行状态的进行监控,然后做出维修决策。通过这种方式,可以大大减轻专业维修人员的工作量,不仅如此,运行人员也可以通过监测设备参与检修,及时调整设备运行状态,以维护设备的正常高效运转。纵观设备维修的发展史,我们可以发现,每一中设备维修方法的诞生,都是伴随着科学技术的进步应运而生的。在科学技术低下的初期,因为没有先进的设备管理系统,设备维修只能依靠事后维修的方式进行;随着科学技术的发展,首先出现的是低层次的设备管理系统,只能对设备进行简单的管理,所以可以制定出一定的维修计划和设备的维修周期,进行预防性维护;到了设备维修的第三个阶段,恰逢信息技术飞速发展的时代,先进的管理系统,就可以使经济维修成为可能;到了今天,随着其他技术,例如监测技术的飞速发展,使得系统可以实时监控设备的运行状态,这就可以根据设备的实时状态进行预防性维修。正是基于当今设备维修发展的需要,一套先进的,融合最新技术的设备管理平台就显得尤为重要,而企业资产管理系统(EAM)就是在这个背景下诞生的。EAM的前身是CMMS(Computerized Maintenance Management System:计算机化的设备维护管理系统)。CMMS更多侧重维修管理,包括预防性、预测性维修计划,从系统的应用范围来看,CMMS更多停留在部门级的水平。EAM系统已经在管理的广度和深度上提高到整个企业级,甚至是多企业的管理,EAM系统支持多组织管理。在这样的管理模式下,充分保留了各分公司自身的管理特点,并在需要时互相方便地交换信息和共享流程。这样的EAM系统将帮助管理决策层方便、及时、完整的了解下属企业的运营状况,特别是可以直接在系统中直接对下属企业、部门、系统或其混合模式进行预算控制,以此帮助跨国公司、集团企业全局掌控和管理资产,最大程度降低管理成本,实现企业价值最大化。IT技术的应用同时,EAM帮助企业把实现企业设备资产管理的战略目标变得更加灵活和简单。随着计算机、数据库,尤其是Internet的广泛应用,EAM系统也从过去CMMS可以单机安装发展到今天的网络化运行。任何地点、任何时间, 用户只需要运用标准Internet浏览器即可登录系统,获取实时的管理信息。这样的运作方式同时降低了企业对于IT设施投资,以及维护的成本。全球EAM软件及服务市场规模早在2000年已超过13亿美金,2005年将达到19亿美金。而对于国内EAM的市场窄间,各家公司对于具体的数字说法不一, 而一致的看法是EAM的增长速度是企业信息产品中发展最快的。1.3 论文研究内容本文对EAM的采购管理系统的各个模块进行了需求分析,在需求分析的基础上,设计了系统架构,并实现了EAM采购管理模块,满足了企业采购信息化的需求。本文的主要工作有:1对采购管理系统进行了需求分析。首先,分析了采购管理的总体业务流程与采购管理在整个EAM系统中的地位;然后,将网上超市管理、资产申请、资金申请功能,详细分析,明确需求。2设计了系统的总体架构。总体架构分为视图层、代理层、控制层、模型层与DAO层,设计了系统的总体业务流程和各层处理逻辑。3设计了系统的详细架构。首先设计了详细架构通信图与数据流;然后分别设计了前台与后台的逻辑处理系列图。4设计了相应的系统数据库。5对系统模块中的类与接口、页面进行设计与编码。1.4 论文结构本文分为6章第1章,绪论。简要叙述了项目背景与开发采购管理系统的意义,引出了本文主要工作。第2章,系统平台与技术。简单说明了本文涉及的关键技术J2EE、MVC和SSH框架技术。第3章,网上采购模块需求分析。首先分析了采购管理的总体目标,然后详细分析了采购管理涉及的各个模块的流程与功能,明确了需求。第4章,网上采购模块设计与实现。首先设计了系统的总体架构与原理,然后设计了系统的详细架构设计与数据库,最后详细阐明系统模块的主要类与页面设计。以及说明了系统开发与运行环境,并直观展现系统部分模块的运行效果。第5章,总结与展望。对总结了本文、分析了项目的特点与优势、指明了未来工作的切入点。第2章 系统平台与技术2.1 MVC设计模式2.1.1 MVC模式的介绍随着Web开发的不断发展和需要,MVC模式被推荐并成为Sun公司J2EE平台的设计模式,并且在应用中受到越来越多的开发者的欢迎。Model-View-Controller原来是Xerox PARC在八十年代为编程语Smalltalk-80发明的一种应用程序的框架结构,至今已被广泛使用。该框架结构支持三层结构的类:表现应用程序状态层、屏幕表现层和控制流层,因此这三层被称为模式(Model)、视图(View)和控制器(Controller)。MVC是可以满足那些需要为同样的数据提供多个视图的应用程序的开发需要,在开发与用户接口相关,特别是对用户接口要求较复杂的相关的应用程序时,可以很好地以不同的方式来显示同一数据,也就是在不改变软件功能的前提下,可以实现用户对用户接口的个性化要求,而MVC模式的最大特点就是将业务层与表示层分离,而且提供了很多使显示接口更加个性化的卷标库,所以它能更好地实现用户接口的各种个性化需求。MVC通常用于分布式应用系统的设计和分析,如:大型商业网站、企业信息系统、管理信息系统、决策支持系统等,但它本身并不局限于某一个特定的领域。MVC设计模式,最近几年被推荐为SIJN公司JZEE平台的设计模式,它强制性地把应用程序的输入、处理和输出分开3。它的三个核心部件分别是模型、视图和控制器,它们各自处理各自的任务:(1)模型(业务逻辑层):表示企业数据和业务规则,实现具体的业务逻辑、状态管理的功能。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJB和ColdFusion Companies这样的构件对象来处理数据库。被模型返回的数据都是中立的,也就是说模型和数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。(2)视图(表示层):即用户看到并与之交互的接口,是应用程序的外在表现,通常实现数据的输入和输出功能。对老式的Web应用程序来说,视图就是由HTML元素组成的接口,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术也层出不穷,它们包括Macromedia Flash和像XHTML、XML/XSL、WML等一些标识语言和Web Services。因此如何处理应用程序的接口变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。(3)控制器(控制层):起到控制整个业务流程的作用,根据用户的输入调用相应的模型和视图去完成用户的需求和相关的操作。具体地来说:控制器本身不输出任何东西和做出任何处理。它只是接受客户的请求并进一步决定调用哪个模型去处理该请求,并根据处理结果来确定用哪个视图来显示模型处理之后返回的数据。它们三者之间的关系如图3.1所示。 图2.1 MVC组件类型的关系和功能2.2 Struts项目概述 Struts是Apache组织的一个项目,像其它的Apache组织的项目一样,它也是一个开源专案。Struts作为一个设想是Craig R McClanahan于2000年提出的,该设计的目标是为利用Java技术开发基于MVC模式的Web应用提供一个标准模式。基于Struts架构的Web应用程序基本上符合JSPModel2的设计标准,是MVC设计模式的一种变形,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet、JSP和Custom Tag Library5。Struts框架是一种基于Java的技术,Web应用程序开发人员通过Struts框架即可充分利用面向对象设计,代码重用及“编写一次,到处运行”的优点。另外,Struts不仅是拥有自己的控制器,同时整合了其它的一些技术来实现模型层和视图层,例如:在模型层,它可以很容易与数据库的访问技术相组合,包括JDBC技术和EJB技术;在视图层,它能够与JSP、XSL等组件相结合6 。所以从一定的意义上讲,采用Struts来实现基于MVC的Web应用的开发,可以根据具体的需求来选择设计的复杂程度,具有很好的扩展性。Struts的主要优势功能如下:(1)Struts中包含一个控制器Servlet,用来控制用户的请求发送到相应的Action对象;(2)在JSP页面中可以选用自定义标签库,并且在控制器Servlet中提供关联支持,这样可以帮助开发人员方便快捷地创建交互式窗体应用;(3)Struts还提供了一系列实用对象:XML文件处理、通过Java Reflection API自动处理JavaBean属性、国际化的提示和消息。2.2.1 Struts核心组件Struts是一组相互协作的类、Servlet和JSP标记,它们组成了一个可重用的MVC设计模式。这个定义表示Struts是一个框架,而不是一个库,但同时Struts也包含了丰富的标记库和独立于该框架工作的实用程序类库。Struts通过一些组件类来完成框架的功能,这些组件包括:ActionServlet、Action、ActionForm、ActionForward、ActionMapping。1. ActionServletActionServlet继承自javax.servlet.http.HttpServlet类,它在struts中扮演的角色是中心控制器。它提供了一个中心位置来主要负责将Http客户请求组装后,根据配置文件的指定的描述,转发到适当的处理器。另外,除了作为应用程序的前端控制器外,ActionServlet实例还负责初始化和清除应用程序的资源。2. Action一个Action类的角色,就像是客户请求动作和业务逻辑处理之间的适配器,它作为应用程序响应用户请求的动作,将请求与业务逻辑分开。这样用户的请求和Action类之间可以有多个点对点的映射。Action最为常用的方法是execute(),典型的Action类一般要在execute()方法中实现下列逻辑:(l)检查用户session的当前状态。如果session过期或者用户没有登录,要将表示层的页面跳转到用户登录页面;(2)检查用户输入的合法性。调用Form Bean实例的validate()方法检查一些字段的输入值是否恰当或合法;(3)执行业务操作。调用业务逻辑Bean的相应方法执行用户的业务请求;(4)更新服务器端的对象。将Model的状态改变通知给View,并返回请求页面。3. ActionForm一个应用系统的消息转移(或者说状态转移)的非持久性数据的存储,通常由ActionForm Bean来负责,它的主要功能是为Action的操作提供与客户窗体相映像的数据。对于每一个客户的请求,一般要经历如下几个步骤:(l)检查Action的映像,确定配置文件中己经配置了对ActionForm的映像;(2)根据Name属性查找ActionForm的信息;(3)查找ActionForm的使用范围,确定在此范围下是否存在对应的 Form Bean的实例;(4)假如在当前范围内,相应的 Form Bean的实例己经存在,而且对当前的请求来说是同一类型的话,就可以重用,否则,就要重新构建一个 Form Bean的实例;(5)调用Form Bean的reset()方法;(6)调用对应的set()方法,对状态属性赋值;(7)如果validated属性值被设置为true,则调用Form Bean的validate()方法;(8)如果validate()方法没有返回错误,控制器将ActionForm作为参数,传给Action实例的execute()方法执行。 4. ActionForward当Action实例的execute()方法运行完毕后,控制器根据Mapping可以将响应信息转到适当的地方,ActionForward的主要功能就是对将要转向的视图的地址的一个封装。转向的各种属性也可以在配置文件中设置性,这样就大大提高了软件的复用性和可维护性。 5. ActionMappingActionMapping以Java的形式封装了怎样将一个请求URL映射到与其对应的Action的一些信息。ActionMapping对象帮助进行框架内部的流程控制,它们可以将请求URL映像到Action类,并且将Action类与 ActionForm Bean相关联。Struts框架的控制器ActionServlet在内部使用这些映射将控制转移到特定的Action类的实例。2.2.2 Struts的工作流程采用Struts框架开发Web应用系统时,在Web应用启动时就会自动地加载并初始化ActionServlet,此时ActionServlet将会从Struts-config.xml文件读取配置信息,并把它们存放到各种对应的配置对象中。当ActionServlet接受到一个客户请求时,将执行如下流程:(l)检索与用户请求匹配的Action实例,如果不存在,控制器直接将请求转发给JSP或静态页面;如果有对应的Action,并且这个Action有一个相应的Form Bean,ActionForm被实例化并用Http请求的数据来填充其属性,然后保存在ServletCotenxt中,以备其它Action对象或JSP调用。(2)控制器根据Struts-config.xml的配置信息将请求切换到具体的Action,对应的相关的 Form Bean的信息也一起发送给Action类的execute()方法。(3) Action的execute()方法返回一个ActionForward对象,控制器ActionServlet再通过该ActionForward对象来进行转发工作。(4) Action根据业务处理的不同结果返回一个相应的目标响应对象给总控制器,这个目标响应对象可以对应一个具体的JSP页面或者是另外一个Action。(5)总控制器ActionServlet根据业务功能Action返回的目标响应对象(多数情况下,该响应目标是一个JSP页面),将Http请求转换到该目标响应对象中,进一步将结果页面展现给用户。2.2.3 Struts框架实现MVC模型Struts实质上就是JSP Model2的基础上实现的一个MVC模式框架,MVC设计模式为构建可扩展、可重用的体系结构打下了很好的基础,该设计模式需要用户将自己的代码抽象出来,把项目在一定的程度上分解为表示,逻辑和控制三部分,每部分之间的关系相对较小,以便使得软件结构更加灵活,并具有较好的可重用性和可扩展性。在Struts框架中,模型一般有实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP檔构成,Struts实现的MVC框架如图3.4所示。 图2.2 Struts实现的MVC模型Struts是Apache组织的一个项目,提供了一个实现MVC架构的高度自动化的方式,作为一个MVC的框架,Struts对Model、View和Controller都提供了对应的实现组件:(l)控制器(Controller):控制器的作用是从客户端接收请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中Controller功能由ActionServlet和ActionMapping对象构成。ActionServlet是MVC设计模式的决策控制部分,也是Struts框架的核心。它根据ActionMapping把Http消息形式的用户请求转换成相应的应用程序的动作。ActionServlet还负责用相应的请求参数填充ActionForm(通常称之为FormBean),并将其传给对应的动作类(通常称之为ActionBean)。动作类Action来实现核心商业逻辑,它可以访问JavaBean或调用EJB,最后动作类指向相应的JSP檔,最终生成相关的视图。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象类之间的点到点的映像。ActionMapping中有Action对象的名字和地址的描述,当有请求传入Controller时,它把请求的路径映像到Action的地址,并把请求传给那个Action类。ActionMapping类也包括一些程序中可能的唯一的信息,例如本地变量,特定环境数据,或者URL。(2)模型(Model):表示应用程序的状态和业务逻辑9。MVC系统中的Model部分从概念上可以分为两类:系统的内部状态和改变系统状态的动作。Struts为Model部分提供了Action和ActionForm对象,所有的Action处理器对象都是程序开发者从Struts的Action类派生的子类,并对其中主要的方法进行覆盖。Action处理器对象封装了具体的业务处理逻辑,处理具体的业务逻辑操作,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象,可以通过定义属性描述客户端窗体数据。我们可以从它派生子类的对象,利用它可以实现对客户端的窗体数据的良好封装和支持,相应的Action处理器对象可以直接对它的窗体数据进行读写,而不再需要和Request、Response对象进行数据交互,通过ActionForm组件对象实现了对View和Model之间非持久性数据交互的支持。(3)视图(View):视图是用户看到并与之交互的界面。Struts应用中的View部分是通过JSP技术实现的。Struts提供了自定义的标签库,通过使用这些卷标定义的JSP窗体可以和Model部分中的ActionForm的映像,完成对用户数据的相关封装,同时还可以使用这些标签来丰富JSP页面。2.3 数据持久技术与Hibernate在采用了Struts技术的框架中,Struts简化了Web层的开发,实现了应用程序的显示逻辑和业务逻辑的分离,使应用程序更趋模块化,应用程序更加容易维护。这种应用程序的基本架构是MVC(Struts)+DAO(Data Access Object)+JDBC+Databases。为了进一步地提高代码的可复用性和可维护性,提高开发效率,需要一个更加有效的架构。因为大多数的应用程序都涉及到的数据库操作,通常数据库表会很多而且关系复杂,如果使用DAO+JDBC访问数据库将会使得编程过程复杂化,进而带来的是大量的维护工作,特别是层与层之间的耦合性大,表格属性的变动将极大的影响代码的维护,因此需要有一种方便通用的方案来解决这个问题。这里将采用对象/关系映像(Object/Relational Mapping)的数据持久化技术来简化编程的复杂度,目前实现对象关系映像也已经有一些比较成熟的工具,如Caster,JDOGenie,Hibernate等。本文主要应用Hibernate:在Struts中,不需要太多的代码,它能够将对象映像到关系数据库中的行,不需要编写复杂的SQL语句,开发架构也就变成Struts+ DAO+ Hibernate+Database,毫无疑问使用Hibemate实现持久层是一种有效的选择,它可以大大减少操作数据库的工作量,并且使得系统更加易于维护。2.3.1 Hibernate的概述和特点1.Hibernate概述Hibernate是一种很好的ORM(Object/Relational Mapping)映射工具,支持使用各种Java思想如:inheritance,association,composition,collections等实现的对象。它可以直接映像大部分的JavaBean而不需要做任何修改,即使修改最多也就是在对应的Bean里面加上一些私有访问方法;可以将一个用户定义的多个实例映像到一张表的同一行;还可以用代理模式简化加载类的过程14。对于使用JDBC和SQL手工操作数据库来说,使用Hibernate,可以大大减少操作数据库的工作量。因此使用它,既可以用来在Java应用程序中取代大部分JDBC代码,也可以很方便地整合到系统中作为持久层框架。Hibernate使用数据库和配置文件数据来给应用程序提供相应的持久化服务和持久化的对象PO(Persistent Objects)。通过简单地设置配置文件hibernate.xml和创建每个数据库表的xml映像文件,可以省去大量复杂的JDBC编程,Hibernate可以支持17种数据库,同时它也支持连接池应用。2.Hibernate的特点(1)Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架。Hibernate的特点主要是简单、易用、强大、灵活而且速度够快。Hibernate可以代替JDBC的编程应用的场合,例如Java应用程序中访问数据库部分的代码,DAO模型中接入数据库时的访问代码,甚至可以是BMP里面的访问数据库的代码。另外,Hibernate拥有自己的功能强大的查询语言 (HQL),HQL与SQL非常相似,HQL基于SQL,但它提供了更加面向对象的封装。(2)Hibernate不同于Entity Bean。Entity Bean由容器处理大部分的资料完整性、资源管理和并发性功能,因此开发人员只需要关注业务逻辑和数据处理。从软件整体的框架来看,Hibernate不能用于完全替代 Entity Bean。Hibernate和 Entity Bean都为程序员实现了透明的持久性,而且程序员都不需要关心太多的技术细节15。Hibernate另外也为我们提供了更灵活的事务管理机制,Hibernate使用Session来管理事务,而 Entity Bean则将事务管理委派给了EJB容器。Hibernate虽然具有自己的事务管理,但是实际上它的事务管理是对 JDBC Transaction的封装,或者是对 JTA Transaction的封装,也就是上面提到的,Hibernate是对JDBC的轻量级对象封装。值得注意的是Hibernate的事务管理更加灵活,它可以在 JDBC Transaction和JTA Transaction之间进行选择,默认情况下将使用JDBC Transaction。(3) Hibernate是一个和JDBC密切关联的框架,Hibernate的兼容性只与JDBC驱动和数据库有关系,而与Java程序或者APP Server没有任何关系。(4)灵活的对象-系映像方法,可以实现各种不同类型的映射,而且Hibernate具有简单易于操作的API接口和丰富的资源配置文文件,这些都使得应用程序的开发更加简单和快捷。3.Hibernate持久化框架的作用在软件开发过程中引入成熟的持久化实现框架,大大提高了数据库访问层的开发效率,具体表现在以下几个方面:(l)可以减少乏味代码的编写。Hibernate持久层框架封装了数据持久层的很多相关的技术细节,例如事物管理、数据库连接管理、SQL语句的生成等,使得开发人员可以避免重复的JDBC编程,将精力投入到业务逻辑具体实现中去。(2)更加面向对象的设计。Hibernate持久层框架是建立在面向对象的设计思想之上的,而ORM(Object Relational Mapping)是Hibernate持久层框架的基本特性,也是Hibernate实现面向对象设计的关键技术。ORM为系统面向对象的设计的实现提供了更加自然的实现方式,可以通过ORM将系统中的 Domain Objects自动映像到各个数据库表,从而在编码过程中只需利用面向对象的方法来处理Objects的相关属性,而无须对JDBC ResultSets中的字段进行分别处理。(3)可以保证更好的性能。Hibernate持久层框架提供了优秀的性能优化机制,如内置的数据库连接池支持、PrepareStatement缓存、数据缓存等。这些对于上层架构完全透明的优化机制的综合使用大大提高了系统的性能。(4)更好的可移植性。基于Java的跨平台特性,开发的软件系统可以在不同的操作系统之间切换,但由于数据库之间的差异,系统在数据库平台之间移植并不太容易实现。而Hibernate持久层框架由于其设计上的良好隔离,提供了对不同数据库的良好支持,只需简单地修改其配置文件中的数据库的属性参数,即可实现底层数据库的切换,更好地提高了系统的可移植性,也更好地保护了己有的人力和资源投入。2.4 Spring框架的应用 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案16。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而与它们无缝地整合。简单来说,Spring是一个一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架:(1)轻量:大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR檔里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。(2)控制反转:Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反像从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。(3)面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。(4)容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的17。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。(5)框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML檔里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等)。所有Spring的这些特征使编程更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。第3章 网上采购模块需求分析3.1 采购业务程分析整个资产管理系统模块结构如图3-1所示。图3.1 资产管理系统模块结构图网上采购功能支持从计划、订单、收货、收票,到结算的全过程的管理。实现采购系统的物流、资金流、信息流的统一。通过采购过程中价格管理及事后成本分析,达到稳定产品质量,降低采购成本目的。对采购业务中的帐务处理提供支持。采购管理模块与资产核查、资产申报、等模块形成良好接口。采购管理系统涉及到的模块如图32所示。图3.2 采购管理系统结构采购管理全流程涉及员工、部门经理、财务经理、采购员等角色。各个角色相互协作,共同完成采购管理这一流程,如图33所示。图3.3 采购管理流程3.2 采购业务流程详细分析采购模块的包含有有3个主要功能:网上超市管理,采购申请,资金管理。3.2.1 网上超市管理需求分析包括目录管理、信息发布和报价系统。目录管理提供界面方便用户浏览商品,以购物车的方式选取商品,用户可随时查看自己所选择的商品。在超市中选完商品后,可自动生成并保存物资采购申报表,并可根据资金情况决定是否能打印输出。报价系统在员工选择商品时,会实时显示所选商品的累计金额、已申报金额及估计剩余金额。3.2.2 采购申请需求分析员工在提交了采购订单之后,交由项目经理进行审批,如果通过,项目经理便通过核查进一步提交采购申请。若经理不能通过审批则可修改订单后再提出申请。图3.4 申购资产流程图3.2.3 资金管理需求分析部门经理提出采购申请之后,有财务部门经理进行审查图3.5 资金管理流程图第4章 网上采购模块的功能分析与设计本章主要介绍资产管理系统的采购模块,以及采用MVC设计模式的体系结构,这里以该子系统中账户管理模块的设计为例说明整个设计开发过程,其它模块的设计思想相同。4.1 总体设计此系统的技术架构设计是基于J2EE架构思想与MVC模式以及实现这种模式的Struts技术。系统的总体技术架构如图41所示。图4.1 系统总体构架按照MVC设计模式把系统划分为模型,控制与视图三个基本层次,其思想主要是用面向对象的设计方法将用户界面与业务逻辑隔离。由模型层(Model,执行请求的操作),视图层(View,显示应用的状态),控制器层(Controller,处理用户输入,设备与程序间的交互)三部分构成。Model负责数据处理,实现特定的业务功能。包括应用数据的获取,数据的处理,事务处理,状态变更。因此,它包含了传统的三层结构的“数据层”全部与“逻辑层”的部分功能。Controller决定应用的行为。接受用户输入,根据输入选择特定的Model,选择输出所用的View。View按特定的方式显示“业务逻辑模式”的数据。通常是主动直接从Model获取数据;也允许接受Model的数据变化时发送的通知,更新显示。对于Web应用的开发模型,相对于传统的三层结构,MVC更符合面向对象的设计思想。多个视图使用同一个模型。模型与视图的分开使多个视图可以使用相同的企业模型。因此,企业应用程序的模型组件就更容易实现,测试与维护,因为所有对模型的访问都要经过这些组件。对客户机的新类型更容易支持。要支持客户机的新类型,只需为其编写一个视图与控制器,然后在已有的企业模型中将它们连起来。视图层使用开源软件Struts作为前端控制器,控制JSP页面之间的信息传递与流转。视图层使用远程服务Proxy来调用后端的构件服务。Struts包含三个重要的元素。ActionServlet充当前端控制器的角色,负责接受用户界面(如:JSPHtml/Xml等)发出的Http请求,并调配服务器端资源,处理用户请求并向用户回送结果页面。ActionForm从Http请求中提取业务数据,并转换成ValueObjeet,同时还负责业务数据的验证,修剪等工作。Action是处理用户请求单元。ActionScrvlet根据配置参数选择对应的服务处理单元。Controller使用SessionBean与MessageBean作为服务入口,分别提供同步会话与异步会话两种构件协作方式,并提供事务管理,异常处理等必须的功能。控制层的设计巾使用了责任链模式,通过责任链把语法检查,语义分析与匹配等一系列功能作为可选的服务,如图4.2所示。图4.2 控制层处理流程图按照用户的配置,逐一挂到责任链上,只有通过了责任链上所有服务检查点的核实,消息事件才能到达目的构件。否则,会生成一个失败异常返回给用户分析。Model负责表述业务逻辑与数据,具有两个子层:数据访问层与业务逻辑层数据访问层,负责把外部数据(数据库,XML文件,数据文件等)映射成为内存中的对象VO(Value Object,值对象),它提供了透明的数据访问服务。由于存放在外部数据源的业务数据一般都非常庞大,而且外部存储器的访问速度比内存的访问速度要慢许多,一般慢l至4个数量级,需要耗费较多的系统时间,因此数据访问构件层的必须拥有良好的执行效率。业务逻辑层,通过数据访问层获得所需要的业务数据,并提供对业务数据的处理,其作用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论