[硕士论文精品]网上花卉销售系统的设计与实现_第1页
[硕士论文精品]网上花卉销售系统的设计与实现_第2页
[硕士论文精品]网上花卉销售系统的设计与实现_第3页
[硕士论文精品]网上花卉销售系统的设计与实现_第4页
[硕士论文精品]网上花卉销售系统的设计与实现_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

大连理工大学专业学位硕士学位论文摘要随着我国经济的持续、快速发展,人民生活水平的提高,人们对生活的质量也有了更高地追求,花卉成为社会和人民生活的一个重要组成部分,花卉业因此而蓬勃兴起。花卉的需求、生产和销售被提到议事日程上来,它急需一个平台来满足这三方面的服务。网络和电子商务则为此提供了最好的服务平台。这个平台即方便了消费者又使商家得到了无限商机,正是出于这样一个目的,我们设计开发了网上花卉销售系统。网上花卉销售系统所有的功能都是围绕花卉销售和花卉分类的实际需要展开的,功能相对而言比较集中。本文首先对该系统所用到的软件开发技术进行了介绍,其中包括J2EE技术中的SMUTS架构、SPRING架构和HIBERNATE架构,SQLSERVER2000数据库等。在此基础上,进行了网上花卉销售系统的总体设计,并实现了系统的数据库及数据处理业务,对该系统进行了单元测试和系统测试及其特性分析,最后说明了该系统需要完善的地方和将来系统扩展的方向。网上花卉销售系统主要功能包括用户注册登录,用户信息管理,花卉信息查询,花卉信息管理,购物车管理,订单管理,销售统计,库存统计,热门花卉销售统计与分析。选用STRUTS架构作为前台WEB框架,HIBERNATE架构作为数据持续层部分的框架,SPRING架构作为服务层的基础框架解决了系统的耦合性,STRUTS、HIBEMATE、SPRING架构的结合使系统具有更高的开发效率,及代码重用性高、易于维护;为将来功能扩展及升级提供了方便。本系统不仅为花卉的信息化管理提供了较好的应用平台,对其它网上购物行业管理也有一定的借鉴意义。关键词花卉销售花卉分类;销售系统网上花卉销售系统的设计与实现DESIGNANDIMPLEMENTATIONOFONLINEFLOWERSALESYSTEMABSTRACTALONGWITHOUA“COUNTYECONOMYCONTINUALLY,FASTDEVELOPMENT,LIVESOFTHEPEOPLELEVELENHANCEMENT,THEPEOPLEALSOHADTHEHIGHGROUNDPURSUETDTHELIFEQUALITY,THEFLOWERSANDPLANTSHAVEBECOMESOCIALANDALIVESOFTHEPEOPLEIMPORTANTCONSTITUENT,THEFLOWERSANDPLANTSINDUSTRYTHEREFOREEMERGEDVIGOROUSLYFLOWERSANDPLANTSDEMAND,THEPRODUCTION,ANDTHESALEWASMENTIONEDTHEAGENDACOMESUPITURGENTLYNEEDSAPLATFORMTOSATISFYTHESETHREEASPECTSTHESERVICETHENETWORKANDELECTRONICEOELLMARCEHAVEPROVIDEDTHEBESTSERVICEPLATFORMFORTHISTHISPLATFORMNAMELYFACILITATEDTHECDNSUNLETENABLETHEBUSINESSTOOBTAINTHEINFINITEOPPORTUNITY,WRITSPRECISELYSTEMMINGFROMTHISKINDOFGOAL,WEDESIGNEDHAVEDEVELOPEDONLINEFLOWERSALESYSTEMONLINEFLOWERSALESYSTEMANFUNCTIONSA11ARCREVOLVETHEFLOWERSANDPLANTSSALEANDTHEFLOWERSANDPLANTSCLASSI虹础ONACTUALNEEDL蛐CHTHEFUNCTIONRELATIVESAYSQUITESTRONGLYTHISARTICLEFIRSTTHESOFTWAREDEVELOPMENTTECHNOLOGYWHICHUSEDTOTHISSYSTEMHASCARDEDOLLTHEINTRODUCTION,INCLUDINGJ2EEINTHETECHNICALSTRUTSCONSTRUCTION,THESPRINGCONSTRUCTIONANDTHEHIBERNATEENNSUUCFION,SQLTHESERVER2000DATABASEANDSOONINTHISFOUNDATION,HASCARRIEDINTHEONLINEFLOWERSALESYSTEMDESIGN,ANDHASREALIZEDTHESYSTEMDATABASEANDTHEDATAPROCESSINGLVICE,HASCARRIEDONTHEUNITTESTANDTHESYSTEMTESTANDTHECHARACTERISTICANALYSISTOTHISSYSTEM,FINALLYEXPLAINEDTHISSYSTEMNEEDSTOCONSUMMATETHEPLACEANDTHEFUTURESYSTEMWILLEXOANDDIRECTIOMONLINEFLOWERSALESYSTEMMAINFUNCTIONINCLUDESN圮USERREGISTRATIONREGISTERSUSERINFORMATIONMANAGEMENT,FLOWERSANDPLANTSINFORMATIONINQUIRY,FLOWERSANDPLANTSINFORMATIONMANAGEMENT,SHOPPINGCARTMANAGEMENT,ORDERFORMMANAGEMENT,SALESSTATISTICS,STOCKSTATISTICS,PDPUL钟FLOWERSANDPLANTSSALESTATISTICSANDANALYSISSELECTSTHESTRUTSCONSLAUETIONTOTAKETHEONSTAGE屯BFRALNETHEHIBERNATECONSTRUCTIONCOMINUEDTHELEVELPARTIALFRAMESASTHEDATA,THESPRMGCONSTRUCTIONHASSOLVEDTHESYSTEMCOUPLINGASTHESERVICELEVELFOUNDATIONFRANLE,STRUTS,ILIBEMATE,THESPRINGFRALLEUNIONENABLETHESYSTEMTOHAVETHEHIGHERDEVELOPMENTEFFIEIENCYANDTHECODEA1矾LSTEDWITHHEAVYRESPONSIBILITYTHENATUREHIEEASYTOMAINTAILL;HASPROVIDEDCONVENIENTLYFORTHEFIMLREFUNCTIONEXPANSIONANDTHEPROMOTIONNOTONLYTHISSYSTEMHASPROVIDEDTHEGOODAPPLICATIONPLATFORMFORFLOWERSANDPLANTSINFORMATIONMANAGEMENT,THESHOPPINGPROFESSIONMANAGEMENTALSOHASCERTAINMODELSIGNIFICANCETOOTHERNETSONKEYWORDSFLOWERSANDPLANTSSALEFLOWERSANDPLANTSCLASSIFICATION;SALESYSTEMIIDALIANUNIVERSITYOFTECHNOLOGY独创性说明作者郑重声明本硕士学位论文是我个人在导师指导下进行的研究工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。作者签名揩日期翌盗垒盟9大连理工大学硕士研究生学位论文大连理工大学学位论文版权使用授权书本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。作者签名蛐导师签名卫型2年月L日淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文1绪论11课题的理论意义和应用价值当今时代是科技日新月异的年代,随着科学技术的迅速发展,信息技术己在社会经济生活的各个领域中得到广泛应用,互联网越来越成为政府、企业、个人之间进行信息交流不可缺少的工具,现代社会的工作效率也因此得到了飞速的提高。网上花卉销售是网上花店重要的业务,范围涉及用户注册登录,用户信息管理,花卉信息查询,花卉信息管理,购物车管理,订单管理,销售统计,库存统计,热门花卉销售统计与分析等多项业务。为了更快、更广的加快网上花店信息化建设,我根据在公司实习经历,确定了开发网上花店范围内的管理系统,针对网上花店的管理体制、管理内容、管理方法进行全面分析的基础上,综合花卉行业管理模式,兼顾不同网上花店管理上的差异,设计网上花卉销售系统。如何构建功能更加强大、应用更为灵活、开发更为简便的WEB应用系统成为解决当前网上购物类系统的一个课题。12国内外研究概况及发展趋势如果说90年代互联网的兴起对人类日常生活方式产生冲击的话,那么伴随新千年的至来,INTERILET及其相关的信息技术对社会生活的各个方面的影响就不能仅仅用。冲击”两字来概括,互联网技术已经成为21世纪人类一种新的生活方式。网络是服务于经济生活的技术产物,但是又没有哪种技术像网络这样使经济生活不再如同过去,它促使生产活动、商务活动从形式到内容都发生了深刻的变化,而这种变化的积累所产生的飞跃就是所谓的“新经济”。从90年代末期开始,伴随新经济而来的是一轮又一轮的网络淘金热潮,就其实质无非是商务活动的新一轮竞争,而这种竞争的典型特征是在以互联网为基础的商务轮盘赌中,无论是传统企业还是新兴产业都义无反顾地举起“电子商务”的旗帜,试图通过改造已有传统、建立新游戏规则,进而谋求更大的赢利空间,最终在新经济萌发过程中尽快完成新的“圈地运动”。IT技术及INTERNET的结合使商务活动从形式到内容都区别于以往一的经济活动,被冠之“电子商务”的新的经济活动都是在特定的技术平台支持下完成的。从另一方面,可以说具有电子商务技术未必能够成为新经济中的再潮儿,但是新经济下成功的企业必然具备支持其谋求竞争优势的电子商务系统。著名的竞争优势一书中提到“技术变革就其本身而言并不重要,但是技术变革影响了竞争优势和产业结构,它就举足轻重了”。IT技术及INTERNET发展影响的正是未来企业及其商务活动,为此要正确地运用电子商务活动的技术系统,就必须正确地理淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现解企业的商务活动,理解电子商务,在此基础上才能够真正架构电子商务技术系统,真正使技术系统融入企业的价值链中,这就是本论文研究电子商务系统架构与技术实现的真正目的。121体系发展纵深化1电子商务的基础设施将日臻完善,支撑环境逐步趋向规范和完善。三网合一潮流势不可挡,高速宽带互联网将扮演越来越重要的角色,移动通讯将成为进行电子商务的主要媒体。据预测,3年内移动电子商务将有高达320亿美元的商机,到2002年,全球超过1亿个手机将有上网功能,而到2003年将超过10亿个。2电子商务的支撑环境逐步趋向规范和完善。网络人口以几何级数增加,预计2003年达6000万以上,仅次于美国,网民的消费观念和行为将发生变化,对电子商务的接受程度提高。企业实施电子商务的紧迫性和可能性都大大提高。电子商务的法律法规的出台和实施,使国内电子商务将得到有效的法律保障。电子商务的物流体系逐步完善。随着电子商务的发展和需要,跨地区的专业性物流渠道将适时建立和完善,使得电子商务公司在配送体系的选择方面空间更大,成本将降低。3企业发展电子商务的深度进一步拓展。新一代的电子商务将取代目前的简单地依托“网站电子邮件”的方式。电子商务企业将从网上商店和门户的初级形态,过渡到将企业的核心业务流程、客户关系管理等都延伸到互联网上,更加互动和实时。4个人参与电子商务的深度也将得到拓展。个人数字设备、家庭数字电器将加速普及并实现上网,如个人移动网络设备和网络电视、网络冰箱、网络微波炉的普及将使电子商务的发展空间极大地拓展。12,2服务方式个性化电子商务个性化趋势将向两个方向发展1个性化定制信息。互联网为个性化定制信息提供了可能,也预示着巨大的商机。消费者不仅可以实现点播,而且将促使个人参与到节目的创意、制作过程。2对个性化商品的需要,消费者将把个人的偏好融入商品的设计和制造过程中。所以,对所有面向个人消费者的电子商务活动来说,提供多样化的比传统企业更具个性化的服务,是决定今后成败的关键因素。123服务内容专业化面向消费者的垂直型网站和专业化网站前景看好,面向特定行业的专业电子商务平台发展潜力大。今后若干年内我国上网人口仍将是以中高收入水平的人群为主,他们购一2一淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文买力强,受教育程度较高,生活的个性化诉求比较强烈。提供一条龙服务的垂直型网站及某一类产品和服务的专业网站发展潜力更大。特别是对那些技术含量、知识含量较高的商品和服务,人们一般希望在购买前能够了解相关的知识,得到专家的指导。面向企业客户的专业化趋势。对BT0B电子商务模式来说,以行业为依托的专业电子商务平台也是一个趋势。124服务范围国际化中国电子商务必然走向世界,电子商务将间接刺激对外贸易。比如在减少繁文缛节方面将节省大量费用。我国电子商务企业将走向世界。发展电子商务是缩短国内企业与国外差距的一个最有效的手段。电子商务对我国的中小企业开拓国际市场、利用好国外各种资源是一个千载难逢的有利时机。国外电子商务企业将努力开拓中国市场。随着中国加入WTO,这方面的障碍更会得以消除。125服务重点区域化立足中国国情,采取有重点的区域化战略,是有效地扩大网上营销规模和效益的必然途径。中国地区经济发展的不平衡和城乡二元结构所反映出来的经济发展的阶梯性,收入结构的层次性都十分明显。在可以预见的今后相当长时间内,上网人口仍将以大城市、中等城市和沿海经济发达地区为主,BTOC电子商务模式区域性特征非常明显。以这种模式为主的电子商务企业在资源规划、配送体系建设、市场推广等方面都必须充分考虑这一现实,采取有重点的区域化战略,才能最有效地扩大网上营销的规模和效益。126服务主体融合化就是电子商务网站在最初的全面开花之后必然走向新的融合,包括同类兼并、互补性兼并和战略联盟协作。目前为数不少的网站属于重复建设之列,定位相同或相近,业务内容趋同。由于资源有限,最终胜出的只能是名列前茅的企业。国内那些处于领先地位的电子商务企业的优势毕竟是相对而言的,网站下一步要发展,必然采取收购策略,而主要的模式将是互补性收购。由于个性化、专业化是电子商务发展的两大趋势,而且每个网站在资源方面总是有限的,客户的需求又是全方位的,所以不同类型的网站以战略联盟的形式进行相互协作也是必然趋势。13本文所做的工作本人所做的工作是负责网上花卉销售系统软件的总体设计与开发,其中包括系统需求分析,系统框架设计以及系统的具体功能设计,系统数据库设计,以及系统的功能模块实现和安全策略的考虑,最后对该系统进行了测试。淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现14本文的结构论文的第一部分“论文综述”简要介绍了本文的背景和动机。第二部分简要介绍了网上花卉销售系统所用到的软件开发技术,其中包括JAVA技术中的STNITS架构、SPRING架构和HIBERNATE架构。在第三部分介绍了需求分析与设计。第四部分进行了网上花卉销售系统的设计。第五部分详细介绍了网上花卉销售系统的实现。第六部分是对花卉销售服务管理系统的测试。最后对网上花卉销售系统进行了总结,说明该系统需要完善的地方和将来系统扩展的方向。4淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文2系统关键技术21STRUTS框架概述STRUTS是一个“W曲应用框架”。STRUTS框架是JAVA和APACHE软件基金下JAKARTA项目的一个开放式源代码框架,为WEB应用程序开发人员提供很多便利。其中,它基于MVC模式的设计思想,使代码结构化,条理化,便于维护;很好地实现了业务逻辑与用户界面的分离,将模型和视图从底层事务处理分割开来,不仅使每个模块都能独立完成单一的功能,而且使系统更加易于开发、维护和更新,同时,它提供了大量自定义标记库,可以在JSP页面中分离显示逻辑与静态HTML,使页面代码更清晰,可读性提高,从而简化J2EE的WEB应用开发I”。211STRUTS框架体系结构MVC设计模式来源于面向对象语言SMALLTALK,它提出了一种思想,用于抽象和提炼一个系统的各个组成部分以及各部分之间的关系。MVC模式将事务逻辑同数据表示层分离,同时也将应用的行为即触发事务处理的事件、单独分离出来,形成模型视图控制器MODELVIEWCONTROLLER燃J【2JO它的三类对象介绍如下1模型MODEL模型是应用程序的核心,它封装了应用程序的数据结构和事务逻辑,集中体现了应用程序的状态。2视图VIEW视图实现模块的外观,它是应用程序的外在表现。它可以访问模型的数据,却不了解模型的情况,同时它也不了解控制器的情况。当模型发生改变时,视图会得到通知,它可以访问模型的数据,但不能改变这些数据。3控制器CONTROLLER控制器对用户的输入做出反应,并且将模型和视图联系在一起,它创建并设置模块。STRUTS框架是APACHEJAKARTA项目的一部分,是一种使用JSP和SERVLET来开发WEB层的应用框架。它是MVC设计模式的一种实现。它由一组相互协作的类、SERVLET以及丰富的标记库TAGLIB组成,同时STRUTS也包含了独立于该框架工作的实用工具类【31。STRUTS作为一个MVC的框架,STRUTS对MODEL、VIEW和CONTROLLER都提供了对应的实现组件,对应图21,分别进行介绍,并且看看它们是如何结合在一起的。淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现图21STRUZS体系结构图FIG21THEARCHITECTUREOFSTRUTSF11模型MODELMVC系统中的MODEL部分从概念上可以分为两类系统的内部状态和改变系统状态的动作。STRUTS为MODEL部分提供了ACTION和ACTIONFORM对象,所有的ACTION处理器对象都是开发者从STRUTS的ACTION类派生的子类。ACTION处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的VIEW组件以产生响应。STRUTS提供的ACTIONFORM组件对象,它可以通过定义属性描述客户端表单数据。开发者可以从它派生子类对象,利用它和STRUTS提供的自定义标记库相结合,可以实现对客户端的表单数据的良好封装和支持。ACTION处理器对象可以直接对它进行读写,而不再需要和REQUEST、RESPONSE对象进行数据交互。通过ACTIONFORM组件对象实现了对VIEW和MODEL之间交互的支持。STRUTS通常建议使用一组JAVABEAN表示系统的内部状态,根据系统的复杂度也可以使用像EMI够EJB和SESSIONEJB等组件来实现系统状态。STRUTS建议在实现时把“做什么”ACTION和“如何做”业务逻辑分离。这样可以实现业务逻辑的重用【41。在模型层,STRUTS可以很容易的与数据访问技术相结合,包括JNDI,JDBC和JDO。F2视图VIEWSTRUTS应用中的VIEW部分是通过JSP技术实现的。STRUTS提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的MODEL部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和MODEL部分中的ACTION_FORM的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。同时,在视图层,STRUTS能够与VELOCITY,WEBWORK,TILES等表示层组件相结合【5J。31控制器CONTROLLER淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在STRUTS中CONTROLLER由ACTIONSERVLET和ACTIONMAPPING对象构成,核心是一个SERVLET类型的对象ACTIONSERVLET,它用来接受客户端的请求。ACTIONSERVLET包括一组基于配置的ACTIONMAPPING对象,每个ACTIONMAPPING对象实现了一个请求到一个具体的MODEL部分中ACTION处理器对象之间的映射【6】。212STRUTS的工作流程上SE毫TFI瞻R、过镳币属于S口L【SQL范围F控靠嘲犍1|收请求垂F投凑峨将请求JI映射至A印0RI、J、PACTIONFORM,嫦D、一船晕县醋I蒂每驰J屯。、卜创建ARRIONFOFRO1。谓露A嘣DNF。O,RM一HF6CH;L喵L,VR、了7I实例一智,VAMA怔;亨法产生描诿信息并逅圆纷窖户;姐果是买宅NOACFIOBFORRN鹰图,蒋触装异常处、FM也3T理对象I谓月IA盘ION,隧址孓珊义的EXECUTE、T、,J玉【执行失败】义NULLNULLNULLNULLNULL釜劝露赫雾BE嚣信息瞄CTIO邀ACLIONFOR“ERDX,L“象控制器根据ACFIDNFORRR靖下个ANON或JSP22TRUTS工作流程图IG22HEORKLOWHARTFSTRUTS图22所示,CONTROLLER控制器接收HTTP请求,并从STRUTSCONFIGXML中找出对于该请求的ACTION子类,如果没有对应的ACTION,控制器直接将请求转发给JSP或者态页面。否则控制器将请求分发至具体ACTION类进行处理。在控制器调用具体ACTIONEXECUTE方法之前,ACTIONFORM对象将利用HTTP请求中的参数来填充自己。具体的CTIONFORM对象应该是ACTIONFORM的子类对象,它是一个JAVABEAN。此外,还可以在CTIONFORM类中调用VALIDATE方法来检查请求参数的合法性,并且可以返回一个包含所淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现有错误信息的ACTIONERRORS对象【”。如果执行成功,ACTIONFORM自动将这些参数信息以JAVABEAN的方式保存在SERVLETCONTEXT中,这样它们就可以被其它ACTION对象或者JSP调用。STRUTS将这些ACTIONFORM的配置信息都放在FORMBEANCONFIG集合中。通过它们,STRUTS能够知道针对某个客户请求是否需要创建相应ACTIONFORM实例。ACTION一般只包含一个EXECUTE方法,它负责执行相应的业务逻辑,如果需要,它也进行相应的数据检查。执行完成之后,返回一个ACTIONFORWARD对象,控制器通过该ACTIONFORWARD对象来进行转发工作。我们主张将获取数据和执行业务逻辑的功能放到具体的JAVABEAN当中,而ACTION只负责完成与控制有关的功能【8J。213STRUTS的核心配置STRUTS的核心是控制器ACTIONSERVLET,而ACTIONSERVLET的核心是配置文件STRUTSCONFIGXML,该配置文件的主要作用是建立控制器,模型及其视图之间的联系。它描述了控制器将客户请求映射到对应ACTION类处理的法则,同时还定义了用户输入数据与ACTIONFORM组件的对应映射关系。此外,该配置文件的另个作用是将逻辑名映射到物理路径,使得物理路径与程序路径无关,整个系统导航使用逻辑名在STRUTSCONFIGXML中完成【91。这种在配置文件中完成业务逻辑控制的方法主要有以下优点首先,应用的所有页面的导航定义都集中在一个分等级的XML文档中,通过此配置文件即可迅速把握整个系统的脉络,第二,网页设计人员在修改网页时无需遍历JAVA代码来理解应用的业务逻辑,而当业务逻辑发生改变时,业务逻辑开发者也只需在STRUTSCORTFIGXML中做出相应的调整和修改。在大型的WEB应用系统中,这种管理页面逻辑的方式无论是在系统前期的开发过程,还是后期的维护与升级阶段都显示出了方便性和和有效性。22SPRING框架概述SPNNGFRAMEWORK是由RODJOHNSON创立的一个开放源码的应用框架。它是轻量级的J2EE应用程式框架,旨在简化J2EE的开发,降低J2EE项目实施的难度。SPRINGFRAMEWORK的贡献包括两个部分,首先是为J2EE应用提供了一个优雅的基础结构;另外它还提供了许多旨在帮助开发人员更好的使用J2EE相关技术的工具性支持IL。SPNNG的核心是个轻量级LIGHTWEIGHT容器CONTAINER,SPRING的核心在档案容量只有不到LM的大小,而使用SPRING核心所需要的资源也是很小的,而SPRING是个非侵入性NONINTRUSIVE框架,它的目的之一,是让该应用程式不感受到框架的存在,减低应用程式移植时的负担。SPRING核心本身是个容器,管理物件的生命周期、物件的组态、相依注入等,并可以控制物件在创建时是以原型PROTOTYPE或单例子SINGLETON淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文的方式来创立。SPRING的核心概念是IOC,更具体而易懂的名词是依赖注入DEPENDENCYINJECTION,使用SPRING,您不必自己在程式码中维护物件的依赖关系,只需在组件中加以设定,SPRING核心容器会自动根据组件将依赖注入指定的物件。SPRING实现了IOCINVERSIONOFCONTR01模拟的容器,基于此核心容器所建立的应用系统,可以达到系统元件的松散耦合LOOSECOUPLING,让系统软件可以进行测试TESTABILITY,这些特性都使得整个应用系统在架构上与维护上都能得到相当程度的简化。SPRING的目标是实现一个全方位的整合框架,在SPRING框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,SPRING希望提供ONESTOPSHOP的框架整合方案【11。SPRING的框架可以成为企业级应用程序一站式的解决方案,同时它也是模块化的框架,允许开发人员使用其中一部分的模块进行开发。比如开发者可以使用BEAN容器加之WEB层的STRUTS框架进行工作,也可以只使用HIBERNATE集成框架或JDBC抽象层进行工作。SPRING框架是一个松耦合的框架,框架的部分耦合度被设计为最小,在各个层次上具体选用哪个框架取决于开发者的需要。SPRING在应用服务器之间是可移植的。当然保证可移植性总是一种挑战,但是可以避免使用任何平台特有或非标准的东西,并且支持在WEBLOGIC,TOMCAT,RESIN,JBOSS,WEBSPHERE和其他的应用服务器上的用户。它关注的领域是其他许多流行的FRAMEWORK未曾关注的。SVRING要提供的是一种管理开发人员的业务对象的方法。221SPRING框架体系结构SPNNG框架是一个分层架构,由7个定义良好的模块组成,SPRING模块构建在核心容器之上,核心容器定义了创建、配置和管理BEAN的方式。组成SPRING框架的每个模块或组件都可以单独存在,或者与其他一个或多个模块联合实现【L21。从结构上划分的7个模块如图23所示1核心模块SPRINGCORE提供了一个应用的基础结构,其他各模块均建立在这个模块基础之上。2上下文模块SPRINGCONTEXT构建于BEAN包上CONTEXT包,提供了一种框架式的BEAN访问方式对核心模块进行了扩展,提供了更高层次的功能。3数据存取对象模块SPRINGDAO提供了JDBC的抽象层,它可以消除编写冗长的JDBC代码和解析数据库厂商特有的错误代码。该包也提供了一种方法实现编程性和声明事务管理。4对象关系映射模块FSPRINGORM提供了对对象关系映射的支持,对流行的淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现关系对象映射提供了集成层,包括JDO、HIBERNATE和IBATIS。通过ORM包,你可与所有SPRING提供的其他特性相结合起来使用这些OFR映射。图23SPRING框架的7个模块FIG237MODULESOFSPRINGFRAMEWORK5AOP支持模块SPRINGAOP提供与AOP联盟兼容的面向方面编程实现,允许你定义,如方法拦截器和切点,来给从逻辑上说应该被分离的功能实现代码解耦。6W曲模块SPRINGWEB提供了基本的面向WEB的综合性,提供了WEB应用的一些抽象封装;我们可以将自己熟悉的W曲框架与SPRING整合,像是STRUTS、WEBWORK等,都可以与SPRING整合而成为适用于自己的解决方案。7WEBMVC模块SPRINGWEBMVCSPRING的WEBMVC包提供了面向WEB应用的MODELVIEWCONTROLLER实现。222依赖注入模式依赖注入模式DEPENDENCYINJECTION原来被称为IOC控制反转INVERSIONOFCONTR01模式。IOC是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。MARTINFOWLER的INVERSIONOFCONTROLCONTAINERSANDTHEDEPENDENCYINJECTIONPATTEM一书为IOC正名,至此IOC又获得了一新名“依赖注入DEPENDENCYINJECTION0相对于IOC而言,“依赖注入”的却更加准确的描述了这种古老而又时兴的设计理念。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文的来说,即由容器动态的将某种依赖关系注入到组件之中。高层的抽象模块通常是与业务相关的模块,它应该具有重用性,而不依赖于低层的实际模块,如果低层模块原先是软盘存取的模式,而高层模块是一个存档备份的需求,如果高层模块直接调用低层模块,则对其产生依赖关系【13】。依赖注入的目标并非为软件系统带来更多的功能,而是为了提升组件重用的概率,并为系统搭建一个灵活、可扩展的平台。例如JAVACOMPENVJDBCSAMPLE其中SAMPLEDAO中的DATASOURCE将容器在运行期动态注入,而DATASOURCE的具体配置和初始化工作也将由容器在运行期完成。对比传统的实现方式如通过编码初始化DATASOURCE实例,我们可以看到,基于依赖注入的系统实现相当灵活简洁。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定SAMPLEDAO中所需要的DATASOURCE实例。SAMPLEDAO只需利用容器注入的DATASOURCE实例,完成自身的业务逻辑,而不用关心具体的资源来自何处、由谁实现。我们假设SAMPLEDAO是一个运行在J2EE容器中的组件如WEBLOGIC。在运行期,通过JNDI从容器中获取DATASOURCE实例。假设部署环境发生了变化,系统需要脱离应用服务器独立运行,这样,由于失去了容器的支持,原本通过JNDI获取DATASOURCE的方式不在有效。如何修改以适应新的系统环境很简单,只需要修改DATASOURCE的配置,把DATASOURCE改为别的组件提供。没有编写任何代码我们即实现了DATASOURCE的切换。在传统编码模式中,如果要进行同样的修改,需要付出很大的努力。依赖注入机制减轻了组件之间的依赖关系,同时也大大提高了组件的可移植性,这意味着,组件得到重用的机会将更多。23HIBERNATE框架概述HIBERNATE是一个面向JAVA环境的对象关系数据库映射工具,这种映射技术可以把淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现对象模型表示的对象映射到基于SQL的关系模型结构中去。HIBERNATE不仅管理JAVA类到数据库表的映射,还提供数据查询和获取数据的方法,减少开发人员的编程任务14】。从八十年代开始,就有很多公司和研究机构在进行着面向对象与数据库结合的研究。很多应用还是采用简单的JDBC来访问数据库。可是JDBC也有很多局限性,比如调用复杂,容易产生资源泄漏等等,与面向对象的JAVA语言有一段距离,所以很多开发小组开始思考如何将应用中的数据进行对象化建模,然后再想办法与JDBC结合起来,这就是JAVA数据库开发中的不断推陈出新的对象包装技术。要将现有的JAVA对象持久保存到关系数据库,就使用对象关系映射0BJECTRELATIONALMAPPING,ORM工具来完成,它们能够将对象映射到关系数据库中的行,从而不再需要复杂的持久层,并且使开发人员只需编写最少的SQL在多数情况下不需编写任何SQL。ORMAPPING工具有很多种,其中比较有影响力的一种就是HIBERNATE。HIBERNATE是一个现在很火的ORMAPPING产品,目前已经出到21版,它是开源软件,代码完全公开。它的接口和类虽然简单,但它的功能很强大。它的查询语言也很独特。HIBERNATE和其它的ORMAPPING工具比,更具有亲和力,对关系的查询更方便,目前HIBERNATE的用户量和技术支持越来越多了【L5|。HIBERNATE是一种比较彻底的JAVA对象映射工具,支持使用各种JAVA思想如INHERITANCE、ASSOCIATION、COMPOSITION、COLLECTIONS等来实现对象。它可以直接映射大部分的JAVABEANS而不需要对它们作任何修改,即使不得不修改,最多在BEAN里面加上一些私有访问方法。它还可以将一个用户定义的多个类的实例映射到一张表的同一行,甚至可以利用代理模式来简化载入类的过程。这些功能都大大减少了利用HIBERNATEQL从数据库提取数据的代码编写量,从而节约开发时间和开发成本【16。每一种持久化机制都有一种对持久化对象属性的访问机制,例如SERIALIZATION使用REFLECTION;CMP使用CODEGENERATION;JDO使用BYTECODEPROCEEDING。HIBERNATE使用的是RUNTIMEREFLECTION也就是CGLIBRUNTIMEBYTECODEGENERATION。HIBERNATE利用REFLECTION机制,在系统启动时生成SQL语句,进行对象的持久管理。“持久化”就是把数据保存到可掉电式存储设备以供之后所用。在大多数情况下,特别是企业级应用,数据持久化往往意味着将内存中的数据保存到磁盘上加以“固化”,而持久化的实现过程则大多通过各种关系型数据库来完成。所谓“持久层”,也就是在系统逻辑层面上,专注于实现数据持久化的一个相对独立的领域。在系统架构中,应该有一个相对独立的逻辑层面,专注于数据持久化逻辑的实现。与系统其他部分相对而言,这个层面应该拥有一个较为清晰和严格的逻辑边界【171。淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文231HIBERNATE框架体系结构HIBERNATE对每一种数据库有对应的DIALECT进行操作优化,从而提高它在各种情况下的效率。支持的数据库有ORACLE、DB2、MYSQL、SYBASE、INTERBASE、MICOSOFTSQLSERVER以及HYPERSONICSQL。它可以和多种WEB服务器或者应用服务器良好集成,使得开发者可以根据不同的需要来选择WEB服务器。PERALPS【PELNICTAUTI。01NECTSHIBERNATEPFDPERT2ES图24HIBERNATE体系结构图FIG24THEARCHITECTUREOFHIBERNATE图24展示了HIBERNATE使用数据库和配置文件数据来为应用程序提供持久化的服务和持久化的对象。在应用层和数据库之间的持久层中,有HIBERNATE的持久化对象,配置文件及映射文件。我们在应用和数据库之间创建了“持久层”,是对操作数据部分的抽象。它的分物是存储从应用到数据库的数据,数据的检索,更新和删除。使用HIBERNATE对数据进行持久化操作,把数据库的表映射成类,把通常对表的操作变成对对象的操作,这样,我们就有了“面向对象”的很多优点18。232HIBERNATE工作原理1CONFIGURATIONCONFIGURATION类负责管理HIBERNATE的配置信息。HIBERNATE运行时需要获取底层实现的基本信息,其中几个关键性包括,数据库URL、数据库用户、数据库用户密码、数据库JDBC驱动类、数据库DIALECT用于对待定数据库提供支持,其中包含了针对待定数据库特性的实现,如HIBERNATE数据类型到特定数据库数据类型的映射等。淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城网上花卉销售系统的设计与实现使用HIBERNATE必须首先提供这些基础信息以完成初始化工作,为后继操作做好准各。这些属性在城BERNATE配置文件HIBERNATEC龟,XML或HIBERNATEPROPERTIES中加以设定。当我们调用CONFIGURATIONCONFIGNEWCONFIGURATION0CONFIGURE;时,HIBERNATE会自动在当前的CLASSPATH中搜寻HIBERNATECFGXML文件并将其读取到内存中作为后继操作的基础配置。CONFIGURATION类一般只有在获取SESSIONFACTORY时需要涉及,当获取SESSIONFAETORY之后,由于配置信息已经由HIBERNATE维护并绑定在返回的SESSIONFACTORY之上,因此一般情况下无需再对其进行操作】”。2SESSIONFACTORYSESSIONFACTORY负责创建SESSION实例。我们可以通过CONFIGURATION实例构建SESSIONFAETORYCONFIGURATIONCONFI92NEWCONFIGURATIONCONFIGURE;SESSIONFACTORYSESSIONFACTORYCONFIGBUILDSESSIONFACTORY0;CONFIGURATION实例CONFIG会根据当前的配置信息,构造SESSIONFACTORY实例并返回。SESSIONFACTORY一旦构造完毕,即被赋予特定的配置信息。也就是说,之后CONFIG的任何变更将不会影响到已经创建的SESSIONFACTORY实例SESSIONFACTORY。如果需要使用基于改动后的CONFIG实例的SESSIONFACTORY,需要从CONFIG重新构建一个SESSIONFACTORY实例。3SESSIONSESSION是持久层操作的基础,相当于JDBC中的CONNECTION。SESSION实例通过SESSIONFACTORY实例构建CONFIGURATIONCONFIGNEWCONFIGURATION0CONFIGURE0;SESSIONFACTORYSESSIONFACTORYCONFIGBUILDSESSIONFAETORYO;SESSIONSESSIONSESSIONFACTORYOPENSESSIONO;之后我们就可以调用SESSION所提供的SAVA、FIND、FLUSH等方法完成持久层操作。233HIBERNATEOR映射对象和关系数据库之间的映射是用一个X2VL文档来定义的。这个映射文件被设计为易读的,并且可以手工修改的文档。映射语言是以JAVA为中心的,这意味着映射是按照持久化类的定义来创建的,而非表的定义。虽然有一些工具用来生成映射文档,但是很多HIBERNATE的用户选择手工定义XML映射文档。我们只描述HIBEMATE在运行时用到的主要文档元素和属性。映射文档还包括一些额外的可选属性和元素,它们在使用SCHEMA导出工具的时候会影响导出的数据库SCHEMA结构【20】。OR映射关系无疑是ORM框架中最为关键的组成部分,也是软件开发中开发者时淘宝网购物HTTP/WWW521TAOBAOCOM/淘宝网购物商城大连理工大学专业学位硕士学位论文刻关注的内容。对象和关系数据库之间的映射是用个XML文档XMIAOEUMENT来定义的12“。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以JAVA为中心的,意味着映射是按照持久化类的定义来创建的,而不是表的定义。HIBERNATE从本质上来讲是一种“对象一关系型数据映射”OBJECTRELAFIONALMAPPING简称ORM。映射MAPPING文件是将对象OBJECT与关系型数据RELATIONAL相关联的纽带,在HIBERNATE中,映射文件通常以“HBNLXML”作为后缀。1实体映射实体映射技术作为类与表之闻的联系纽带,在ORM实现中起着至关重要的作用。对HIBERNATE用户而言,映射关系更多的体现在配置文件的维护过程中。被映射的类必须定义对应数据库表主键字段。大多数类有一个JAVABEANS风格的属性,为每一个实例包含唯一的标识。D元素定义了该属性到数据库表主键字段的映射。实体映射的核心内容,即实体与数据库表之间的映射关系。类表映射主要包括三部分内容。表名一类名映射NANLE参数指定了映射类名为TOMREDSAGAHIBEMATEDBENTITYTUSERTABLE参数指定了当前类对应数据库表“TUSER”。通过以上配置,HIBERNATE即可获知类与表的映射关系,即每个TUSER类对象对应TUSER表中的一条记录。主键映射ID节点定义了实体类的标识IDENTITY,这里也就是对应表主键的类属性NAMEID指定当前映射类中的属性”ID”对应了TUSER表中的主键字段。OA|URTM“ID”指定了当前映射表TUSER的睢一标识主键为”ID”字段。咿AV扎1ANGINTEGER指定了当前字段的数据类型。制定了主键生成方式。对于不同的数据库和应用逻辑,主键生成方式往往不同。可以通过数据库自增字段或者应用逻辑两种生成主键。属性,字段映射属性字段映射将映射类属性与表字段相关联,典型情况下,它包含POJO的属性名,网上花卉销售系统的设计与实现表字段名和数据

温馨提示

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

评论

0/150

提交评论