




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号:06012345河南大学2010届本科毕业论文基于虚拟工厂的供需服务平台Virtual Factory-based Service Platform For The Supply and Demand论文作者姓名: 王新春 作 者 学 号: 06023386 所 在 学 院: 计算机与信息工程学院 所 学 专 业: 计算机科学与技术 导师姓名职称: 沈夏炯(教授) 论文完成时间: 2010年5月20日 2010年5月20日开题报告河南大学2010届毕业论文(设计、创作)开题报告(由学生本人认真填写)学号06023386姓名王新春导师姓名职称沈夏炯(教授)开题时间2009年12月1日课题题目基于虚拟工厂概念的供需服务平台课题来源导师指定 自定 其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1目的:搭建一个基于虚拟工厂概念的供需服务平台,然后设计基于虚拟工厂模型的服务平台。主要包括:前台:系统模拟现实为消费者提供产品需求服务(购买产品和个性化向系统申请产品),为生产者提供生产服务(找到待生产产品),设计者提供产品设计服务(找到待设计的产品);系统后台:管理员进行产品管理、用户管理、审核用户需求、下发合同等功能。2意义:模拟现实,实现虚拟产品的需求、设计、生产的供需链,实现为分布在不同区域的供应商、消费者、生产商提供一个供需平台。使消费者需求的个性化、及时性得到保障;为生产者提供丰富的生产信息。3项目背景:虚拟工厂概念:是指生产活动不全在一个工厂内进行,而是使一部分生产活动由作为战略联盟的供应商或伙伴企业完成的一种生产方式。这里的虚拟工厂是正确使用生产功能以外的资源,把原材料和零部件转化成客户所需要的价值,将供应商、营销与销售、工程师、甚至是客户的各种资源动员起来,加以提升、利用从而实现生产任务。4. 现状分析:传统的产品生产方式一般在工厂内进行,由客户提出需求,然后由生产商进行生产,由于地域、信息源、时间等相关因素的差异和不一致,难以实现生产商和生产商、生产商和客户的供需合作,造成信息闭塞,生产效率低下,成本较高,客户的需求和供应商的生产能力的脱节。基于以上原因,虚拟工厂的概念应运而生,虚拟工厂的生产方式充分利用了互联网上丰富的信息资讯,以及在互联网上人与人之间交流的便捷性,为生产商提供丰富的生产信息,为客户提供了个性化的产品需求,为提升供需链的竞争力而得到广泛的推广。目前在耐克、诺基亚等很多大公司都在使用基于虚拟工厂概念的供需链,以提升自身的竞争力。案例:耐克公司是全球虚拟工厂模式的先驱。耐克公司将产品的生产加工任务外包给东南亚等地的许多发展中国家,这些地方的劳动力成本极其低廉,从而使耐克公司获得了较大的竞争优势。研究目标、研究内容和准备解决的问题:1 目标:通过基于虚拟工厂概念的模型,设计一个为生产商,客户,产品设计人员提供服务的B/S系统。2内容:用户注册登录系统,用户维护个人信息,管理员对用户的管理,消费者可以提出需求要约,设计者设计产品,生产商申请生产要约,管理员审核三种用户需求,用户确认需求,管理员下发与用户的合同,用户确认合同。3. 准备解决的问题:用户需求的审核,合同的灵活控制,产品树的数据结构的设计和实现等。开题报告拟采取的方法、技术或设计(开发)工具:采用技术:JSP,Struts2,Spring开发平台:Windows XP, 开发工具采用MyEclipse6.5,语言采用java,数据库采用mysql5.0.预期成果:1毕业设计成果基于虚拟工厂的供需服务平台软件(源代码)2毕业论文进度计划:2009.12.1 - 2010.3.5: 查找资料、搜集相关素材2010.3.6 - 2010.3.26:完成需求分析2010.3.27 - 2010.4.7: 完成概要设计2010.4.8 - 2010.4.15:完成详细设计2010.4.16 - 2010.4.28:完成编码2010.4.29 - 2010.5.4: 完成软件测试2010.5.5 - 2010.5.15:整理资料、撰写毕业论文2010.5.16 - 2010.5.20:根据导师要求,完善毕业设计和论文指导教师对选题报告的意见:指导教师签名: 2009年12月1日开题报告河南大学2010届毕业论文(设计、创作)任务书题目名称 基于虚拟工厂的供需服务平台学院计算机与信息工程学院学生姓名王新春所学专业计算机科学与技术学号06023386毕业论文(设计、创作)要求1. 可行性分析:完成系统的技术可行性分析2. 系统设计:对系统中用到的关键技术进行初步设计3. 程序开发与调试:具体进行项目的开发4. 撰写论文:完成论文撰写毕业论文(设计、创作)进度安排2009.12.1 - 2010.3.5: 查找资料、搜集相关素材2010.3.6 - 2010.3.26:完成需求分析2010.3.27 - 2010.4.7: 完成概要设计2010.4.8 - 2010.4.15:完成详细设计2010.4.16 - 2010.4.28:完成编码2010.4.29 - 2010.5.4: 完成软件测试2010.5.5 - 2010.5.15:整理资料、撰写毕业论文2010.5.16 - 2010.5.20:根据导师要求,完善毕业设计和论文三、需收集的资料和指导性参考文献1虚拟工厂出现在因特网上来自法国论坛报 2010年4月19日2工大校园有座“虚拟工厂”来自黑龙江日报2001年8月14日321世纪的工厂:实实在在的虚拟工厂来自环球企业家2002年11月4 李刚Struts2.1权威指南基于WebWork核心的MVC开发.电子工业出版社.2009年3月5 Bruce Eckel陈昊鹏译Java编程思想第四版机械工业出版社2007年5月6 Patrick Lightbody, Jason Carre谭颖华译WebWork In Action电子工业出版社. 2006年4月7 张新曼精通JSP-Web开发技术与典型应用人民邮电出版社.2007年2月8拉夫利李进华译精通Struts2人民邮电出版社(Web2.0开发实践) 2009年4月9严蔚敏,吴伟民清华大学出版社数据结构(C语言版)2007年11月10张海藩软件工程导论清华大学出版社第五版2008年3月指导教师签名:2009年12 月 8 日任务书河南大学2010届毕业设计(论文、创作)中期检查表题目名称:基于虚拟工厂的供需服务平台学院计算机与信息工程学院学生姓名王新春所学专业计算机科学与技术学号06023386一、毕业论文(设计、创作)进展情况目前,项目的需求分析和数据库表设计已经完成,项目原型图已经做出,项目的大致框架已基本完成。在这个阶段中已经完成的功能有:分页、数据库访问共用代码的编写,Struts2和Spring整合等功能。二、毕业论文(设计、创作)存在问题及解决方案存在的问题:数据库表的字段还有没有确定,系统设计的思路还不是很清晰,产品树分解这个难点还没有解决。解决方案: 建议参考数据库系统概论学习数据库设计的理论。建议参考软件工程导论,严格按照软件工程设计系统的步骤,逐步完成。建议参考和学习数据结构第6章的第118至152页。三、指导教师对学生毕业论文(设计、创作)进展方面的评语该生在做毕业设计的期间,积极认真,能够及时分析和解决遇到的各种问题。现在基本完成了项目工程的搭建和少许功能,但一些难点还有待于深究,建议抓紧时间,挣取尽快完成设计,另外要考虑毕业论文内容的组织和安排。指导教师签名 2010年 4 月 10日中期检查表河南大学2010届毕业论文(设计、创作)综合成绩表(一)学院名称:计算机与信息工程学院学 号06012345姓名王新春专业计算机科学与技术指导教师沈夏炯(教授)综合得分论文题目基于虚拟工厂的供需服务平台指导教师评语及得分指导教师评语评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分指导教师签名 2010年5月20日评阅教师评语及评分评阅教师评语该生论文语句流畅,论点明确,思路清晰,符合本科论文的要求。评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分评阅教师签名 2010年5月23日此表由教师填写综合成绩表(一)河南大学2010届毕业论文(设计、创作)综合成绩表(二)学号06023386姓名王新春所在学院计算机与信息工程学院答辩委员会评语及评分答辩委员会评语答辩委员签字: 2010年5月25日评分 项目 分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分答辩委员会主任签字: 2010年5月25日毕业论文(设计、创作)成绩综合评定: 分综合评定等级:备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。六、书写格式要求:1. 目录;2. 内容提要须书写200左右汉字,开题报告(文科除外)的内容要根据不同专业的课题任务要求,阐述查阅文献、文案论证、解题思路、工作步骤等;3. 正文(含引言、结论等);4. 参考文献(或资料)综合成绩表(二)河南大学本科生毕业论文(设计、创作)承诺书论文题目基于虚拟工厂的供需服务平台姓 名王新春所学专业计算机科学与技术学 号06023386完成时间2010年5 月20日指导教师姓名职称沈夏炯(教授)承诺内容:1本毕业论文(设计、创作)是学生 王新春 在导师 沈夏炯 的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:学生签名: 指导教师签名: 2010 年 5 月 20 日 2010 年 5 月 20 日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。承诺书目 录摘 要IABSTRACTII第1章 绪 论11.1 课题背景11.2 国内外在该方向的研究现状及分析11.3 主要技术介绍2第2章 需求分析42.1 系统需求42.1.1 需求陈述42.1.2 系统功能结构图42.2 数据流程图52.3 数据需求7第3章 详细设计93.1 数据库表设计93.2 要约处理模块的详细设计103.2.1 功能说明103.2.2 类和方法的设计11第4章 难点剖析和共用类的设计144.1 难点剖析144.1.1 引入Spring框架144.1.2 树形结构的存储和展现9154.2 共用类设计174.2.1 分页共用类174.2.2 数据库链接公用类184.2.3 DAO层共用接口18第5章 系统的实现205.1 设计者子系统功能205.2 管理员子系统功能22结 论25参考文献26河南大学本科毕业生学士学位论文摘 要传统的产品生产方式,由于地域、信息源、时间等相关因素的差异和不一致,造成信息闭塞,生产效率低下,成本较高,致使客户的需求和供应商的生产能力相脱节。而虚拟工厂的生产方式充分利用了互联网上丰富的信息资讯,以及在互联网上人与人之间交流的便捷性,为生产商提供丰富的生产信息,满足了客户的个性化的产品需求。本论文首先分析了虚拟工厂概念出现的背景,以及当前的应用概况,而后在此基础上,设计一个基于J2EE技术的供需服务平台,实现了注册登录、用户信息维护、发起要约、审核要约、合同管理、设计产品树、库存管理模块。该平台实现了虚拟工厂生产方式的模型,其中使用当前比较流行的Struts2,Spring框架技术使系统平台具备更好的可扩展性。本文对系统设计过程作了相应描述,同时也对系统需要改进的地方作了总结。关键字:虚拟工厂;树形结构;树形存储;Struts2 Spring框架;IABSTRACTThe traditional way of producing, due to the differences and inconsistencies of geography, information source, time related factors, results in the information block, low productivity, high cost and the gap between customers demand and supplier capacity. While the virtual factory production method makes full use of rich information on the Internet and the convenience of communication between people on the Internet, providing rich production information for manufacturers, meeting customers personalized demand for products This paper first analyzes the background of virtual factory concepts appearing, and the current typical use case, then in this basis, the design and implementation of a J2EE-based service platform for supply and demand.This paper firstly analyzes the background of the concept of virtual factory, and the current typical application, then based on this, designs a supply-demand service based on J2EE technology platform and implements the registration and login, users information maintenance, launching an offer, reviewing the offer, management of contract, designing product tree, inventory management .Keywords: Virtual factory; tree structure; tree storage; Struts2 Spring FrameworkII第1章 绪 论由于虚拟工厂的生产方式较传统的生产方式,提供了更多的个性化需求和信息资讯,使需求、设计、生产一体化,有着非常大的优越性,因而对基于虚拟工厂模型的应用和探索具有重大的市场意义。本论文基于虚拟工厂的模型实现了一个供需服务平台,重点包括用户管理,产品管理,要约审核,合同控制,产品结构分解等功能的实现。1.1 课题背景传统的产品生产方式一般在工厂内进行,由客户提出需求,然后由生产商进行生产,由于地域、信息源、时间等相关因素的差异和不一致,难以实现生产商和生产商、生产商和客户的供需合作,造成信息闭塞,生产效率低下,成本较高,客户的需求和供应商的生产能力的脱节。基于以上原因,虚拟工厂的概念应运而生,虚拟工厂的生产方式充分利用了互联网上丰富的信息资讯,以及在互联网上人与人之间交流的便捷性,为生产商提供丰富的生产信息,为客户提供了个性化的产品需求,为提升供需链的竞争力而得到广泛的推广。1.2 国内外在该方向的研究现状及分析20世界90年代,出现企业资源计划ERP概念。但国内在这方面的研究成果不多,更多的是对MRPII(制造资源计划)框架的应用。随后ERP的研究进入了比较成熟的阶段,但随着信息技术的快速发展,经济全球化进程的加剧,ERP在一些方面表现出了不足和缺陷。由于ERP存在需求不能满足客户个性化需求,不能短期临时性有效地组织分布在不同区域的供应商组成联盟进行合作,然而虚拟工厂的生产方式能更好地组织和整合社会资源,创造社会价值。“虚拟工厂”的最大优势是灵活性、敏捷性。我们可以临时性地组织一个动态的生产联盟,产品生产完成后,动态联盟自动解体;当我们有了新的产品时,又可以组成新的动态联盟。这种快捷反应机制,更能适应国际经济全球化的特点。虚拟工厂目前在国外已有比较多应用,在国内还处于发展阶段。案例11:国际上“虚拟企业”的典范耐克公司,这个全球最大的运动鞋企业没有自己的工厂,生产全部外包,销售终端由专卖店(连锁)加盟商组成,全部营销措施及产品设计都紧紧围绕销售终端进行。并将每一个专卖店打造成集产品销售、信息收集、客户服务、市场营销等多功能为一体的营销中心。案例22:哈工大的“虚拟工厂”,就是哈工大生产技术中心。这里没有机器的轰鸣,没有鼎沸的人声,把设计变成实实在在的产品,它靠的是悄无声息的因特网。据了解,该中心目前只有20几人,但却可以在全世界组织生产,目前他们已与德国、日本成功合作开发产品。遗憾的是目前哈工大的虚拟工厂企业一年的产值还不到二百万,还不能形成规模以带动全省的制造业。这棵小苗要长成参天大树,形成产业化,还需要给予政策、资金的支持。综合以上案例,对虚拟工厂理论的探索和利用存在非常大的市场价值,尤其在国内还没有形成一定的规模,市场应用的潜力非常大,结合软件工程的实现过程,本论文使用当前比较流行的web技术,对虚拟工厂模型做了实现。1.3 主要技术介绍(1) JSP技术简介JSP(Java Server Pages)一种动态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。相对于ASP,用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行;JSP开发的网站稳定性和性能都优越于ASP;JSP有着众多公司共同参与倡导的,开源组件非常多。 (2) Struts2技术简介Apache Struts2是一个优雅的,可扩展的基于MVC思想的web开发框架。Struts2以webwork优秀的设计思想为核心,吸收了Struts1的部分优点。Strus2避免了Strust1与web容器的高度耦合,使代码的测试更加方便;高度可配置性使Strust2具有极好的可扩展性;表现层技术支持FreeMake,JasperReort等多种开源插件;代码开源使系统的安全性和稳定性得到保证。(3) Spring技术简介Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。借助Spring 的IOC容器的支持,容器中的各组件以松耦合的方式组合在一起,组件与组件之间的依赖通过Spirng的依赖注入进行管理。系统中的各个组件之间面向接口编程,降低了系统异构的代价;非常适合团队开发。26第2章 需求分析本章主要介绍了系统平台需求,然后以数据流图的形式展现了系统所要完成的功能。2.1 系统需求此部分主要包括了需求陈述和系统功能结构图的展示。2.1.1 需求陈述用户(消费者、生产者、设计者)可以注册和登录系统。消费者可以浏览系统的产品,可以向系统申请所需产品,系统管理员审核通过后,给予提醒,消费者确认申请,然后管理员下发合同,用户确认合同即合同生效。设计者可以浏览系统需要设计的产品,可以申请系统需要设计的产品,系统管理员审核通过后,给予提醒,设计者确认申请后,管理员下发合同,用户确认合同,即合同生效,然后设计者可以设计产品树。生产者可以浏览系统待生产的产品,然后发起申请,经管理员审核通过后,给予提醒,用户确认申请后,管理员下发合同,用户确认合同,即合同生效。管理员可以管理用户(查删改),可以管理产品(增删改查),可以管理产品单位(增删改查),查看产品树目录,查看产品树,审核邀约,下发合同。2.1.2 系统功能结构图系统结构功能图如图2-1所示。图2-1 系统结构功能图2.2 数据流程图(1) 消费者子系统数据流程图消费者可以浏览系统的产品,可以向系统申请所需产品,系统管理员审核通过后,给予提醒,消费者确认申请,然后管理员下发合同,用户确认合同即合同生效。消费者子系统数据流图如下图2-2所示。图2-2 消费者子系统数据流图(2) 设计者子系统数据流程图设计者可以浏览系统需要设计的产品,可以申请系统需要的产品,系统管理员审核通过后,给予提醒,设计者确认邀约后,管理员下发合同,用户确认合同,即合同生效,然后设计者可以设计产品树。设计者子系统数据流图如下图2-3所示。图2-3 设计者子系统数据流图(3) 生产者子系统数据流程图生产者可以浏览系统待生产的产品,然后发起邀约,经管理员审核通过后,给予提醒,用户确认邀约后,管理员下发合同,用户确认合同,即合同生效。生产者子系统数据流图如下图2-4所示。图2-4 生产者子系统数据流图2.3 数据需求E-R图:实体关系图。要设计一个与数据库打交道的网站,ER图是比不可少的工具之一。本系统有以下重要关系图:1. 一个用户可以发起多次申请,一个申请会对应一个合同。对于用户的每个申请,如果通过管理员的审核,都会对应添加一个与此要约记录相关的合同,他们是一一对应的。要约表需要保存要约申请者的身份证号(userCardID),同时也要保存创建时间、结束时间、审核状态、要约产品编码、产品名称等信息。合同表保存了与要约表像类似的功能,但是合同表一般是不会进行删除和修改的,并且合同表的自动虽然与要约表的字段有很多重复,但是这些字段的含义是不同的。用户、要约、合同的关系图如下图:2-5所示。图2-5 用户-要约-合同E-R图2 新产品树表的记录经审核通过后即可转移到产品树表,他们是一一对应的。新的产品树表包含与设计者的合同信息,然而这些信息对应已经审核过的产品树是没有必要的,为了减少数据的冗余,单独建立了新产品树和产品树。他们的使用场景完全不同的。新产品树表保存的是:设计者新设计的产品树的结点信息和设计者的ID信息,而产品树表保存的是:属于系统的产品树表的信息,是经过审核的。通过产品树目录可以查询产品树。一个产品树目录表的记录对应N个产品树记录。为了便于查询产品树,建立了产品目录逻辑实体和产品树实体,通过产品树目录可以方便地查询到与其对应的产品树信息。产品树目录、产品树之间的关系图如下图2-6所示。图2-6 产品树目录-产品树E-R图第3章 详细设计本章主要对各个功能模块的详细设计做具体说明。首选说明了系统所需要的所有表,以及表之间的逻辑关系,然后列出了每个表的设计详情,最后对要约处理模块做了详细设计。3.1 数据库表设计数据库表主要包括:要约表,合同表,产品树表,产品树目录表,新产品树表,新产品树目录表。表3-1 要约表(offer)字段名类型长度关联注释idint11自增要约ID,自增userCardIDvarchar18要约者cardIDproductNamevarchar20产品名字numberint需求数量createDatedate要约创建时间confirmDatedate要约确认时间deadlinedate要约截至时间auditDatedate审核要约时间statusint0未审核要约1 审核通过2 审核不通过表3-2 合同表(agreement)字段名类型长度关联注释idint11主键合同ID,自增typechar1三种合同类型消费者生产者设计者userCardIDvarchar18User表的cardID用户身份证号numberint需求数量createDatedata创建时间confirmDatedate确认时间deadlinedate最终期限statusInt0未确认合同1 有效合同表3-3 新产品树表(production_tree_new)字段名类型长度关联注释nodeIdint(自增)子产品节点IDnodeNamevarchar20节点名字子产品名称typeint1分支,0叶子weightfloat对应于父节点的权重parentIDint父亲节点IDrootIDint所属根节点IDpAgreementIDint合同idStatusint是否审核通过0尚未审核2 审核通过1 审核未过表3-4 产品树目录表(production_treelist_new)字段名类型长度关联注释treeIDint自增唯一标志treeNamevarchar50产品名字dAgreementIDint来自合同表的cardID与设计者的合同createDateDate生成时间lockint0 尚未设计1 正在设计中,被锁定statusint审核状态0没有审核1 审核不通过3.2 要约处理模块的详细设计3.2.1 功能说明要约处理模块包括以下功能:删除要约,审核要约,查询所有要约,按条件查询要约。3.2.2 类和方法的设计(1) 实现该模块所涉及到重要类如表3-5所示:表3-5 要约处理模块涉及到的重要类编号类名功能说明1OfferAction接受有关要约的请求,调用Service层函数来处理请求,返回相应视图。2OfferServiceService层要约处理接口3OfferServiceImplService层要约处理实现类4OfferDAODAO层要约处理接口5OfferDAOImplDAO层要约处理实现类(2) 实现该模块的类详细设计。1) OfferAction类功能描述:接受有关要约的请求,调用Service层函数来处理请求,返回相应视图。该类设计描述如下表3-6所示。表3-6 要约处理Action类类名称属性/方法类型/返回值备注OfferActionofferOffer收集来自表单的数据offerServiceOfferServiceService层实例,实现处理flagint收集表单的用来更新和删除记录的主键SessionMap获取当前用户session判断当前用户的角色Apply()String插入一条要约记录auditFail()String要约审核失败auditSuccess()String要约审核通过retrieveApplyed()String查询当前用户的要约retrieveAll ()String查询所有要约2) OfferService接口功能描述:Service层要约处理接口。该接口设计描述如下表3-7所示。表3-7 要约处理Service层接口类名称属性/方法类型/返回值备注OfferServiceCreate(Offer offer)boolean添加一条要约记录Delete(int ids)boolean批量删除指定id的记录retrieveByCondition(Offer offer,Int pagesize,Int currentPage)PageResultContainer依据指定条件查询一个分页容器Update(Offer offer)boolean是否更新成功retrieveApplyed(String cardID,Int pagesize,Int currentPage)PageResultContainer根据当前登录用户的身份证号,返回其用户的要约记录Audit(Int status,Int ids)boolean进行批量审核,其中status代表审核状态,ids是要约记录主键3) OfferServiceImpl类功能描述:Service层要约处理实现类本类的方法来自OfferService,是对其的实现,方法完全一致。4) OfferDAO接口功能描述:DAO层要约处理接口。该接口设计描述如下表3-8所示。表3-8 要约处理DAO层接口类名称属性/方法类型/返回值备注OfferDAOCreate(Connection conn,Offer offer)Int返回数据库执行sql语句影响的记录数Delete(Connection conn,Int ids)Int返回数据库执行sql语句影响的记录数retrieveByCondition(Connection conn,Offer offer,Int pagesize,Int currentPage)PageResultContainer依据指定条件查询一个分页容器Update(Connection conn,Offer offer)int依据条件更新数据Audit(Connection conn,Int status,Int ids)Int批量更新要约的审核状态retrieveApplyed(Connection conn,String cardID,Int pageSize,Int currentPage)PageResultContainer依据指定的用户ID查询一个分页容器5) OfferDAOImpl类功能描述:DAO层要约处理实现类。本类的方法来自OfferDAO,是对其的实现,方法完全一致。第4章 难点剖析和共用类的设计4.1 难点剖析本部分主要介绍工厂设计模式和树形结构在本系统中的应用。4.1.1 引入Spring框架对于一个基于B/S构架的Java EE应用而言,用户请求总是被MVC框架的控制器拦截,而当控制器拦截到用户的请求后,必须调用业务逻辑组件来处理用户的请求,控制器该如何获得业务逻辑组件是我们本小结讨论的重点 4 。最容易想到的策略是,直接同过new关键字创建业务逻辑组件,然后调用业务逻辑组件的方法,根据业务逻辑组件的方法的返回值确定结果。在实际的应用中,一般不会使用上面的访问策略,有以下三个理由:(1)控制器直接创建业务逻辑组件,导致控制器和业务逻辑组件的耦合度升高,不利于高层解耦。(2)控制器不该负责业务逻辑组件的创建,控制器只是业务逻辑组件的使用者,不必关心业务逻辑组件的实现。(3)每次请求都创建业务逻辑组件会导致性能下降。为了避免这种情况,实际开发中一般会采用工厂设计模式。工厂模式的顺序图如下图4-1所示。图4-1 工厂模式顺序图采用工厂模式,能将控制器和业务逻辑组件实现分离,从而提供更好的解耦。考虑系统有工厂模式类似的需求,本系统引入Spring框架,则SpringIOC容器成为业务逻辑组件的工厂。Spring负责业务逻辑组件的创建和生成,并管理业务逻辑组件的生命周期。本系统现在要解决的问题是:控制器如何访问到Spring容器中的业务逻辑组件。Spring提供了IOC(依赖注入)特性,是一种优秀的解耦策略。Struts2的核心控制器首先拦截到用户的请求,然后将请求提交给相应的Action来处理,现在让Spring来管理Action,那么请求将会有Spring来接受,那么如何将请求转发给Spring容器中的Action呢?事实上,Spring提供了一种伪Action,当我们在Struts.xml中配置Action时,我们可以指向Spring容器中的BeanID。通过上面的方式,我们看到这种整合策略的关键:当Struts2将请求转发时,不是指向实际的实现类,而是转发给Spring容器提供的Action实例8。这种整合方案能充分利用Spring的IOC特性,是很优秀的解耦策略,但不可避免会带来以下不足:1. Spring管理Action,必须将所有的Action配置在Spring中,而Struts.xml文件中还需要配置一个伪Action,从而导致配置文件的冗余。2. Action的业务逻辑组件接受容器注入,将导致代码的可读性降低。4.1.2 树形结构的存储和展现9(1)树型数据结构知识的介绍。树:是由一个结点的集合以及结点之间的关系构成的。常用的树形结构的存储:1)双亲表示法:假设以一组连续的空间存储树的结点,同时在每个结点中附设一个指示器指示其双亲结点在链表中的位置。2)孩子表示法:由于树中的结点可能有多棵子树,则可用多重链表,即每个结点有多个指针域,其中每个指针指向一棵树的根结点。3)孩子兄弟表示法:链表中结点的的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。(2)本系统中,需要实现对产品树的存储和展现,我选择了双亲表示法,它完全可以满足系统的需要。缺点是:占用一定的内存,考虑到产品树的数据量一般不大,不会对系统内存造成太多的占用;优点:实现的思路清晰简单,效率高。为此设计了产品树表production_tree_new。它包含以下字段:nodeID:产品树结点ID,唯一标志。parentID:父结点ID。weight:结点的权重,代表其父结点产品需要weight个当前结点来组装。rootID:每个结点保存父亲结点。Layer:结点所在的层次。(3)对当前结点插入子结点过程如下图4-2所示。图4-2 插入结点的数据流程图对结点的修改和删除过程与此类似,不再赘述。(4)根据当前树根rootID获取整棵树的过程如下图4-3所示。图4-3 读取产品树的数据流程图(5)本系统对结点的存储多保存了rootID字段,它是为了方便读取整棵的所有结点时,可以一次性读取,避免了递归对其数据库操作;layer字段提供了对树的结点排序依据,实现思路简明。在展现产品树的过程中,使用循环在页面打印Javascript代码,由前台Javascript动态加载展示一棵树。4.2 共用类设计本部分主要介绍了分页共用类、数据库链接共用类、DAO层通用接口。4.2.1 分页共用类对于web应用而言,表现层对数据分页显示是必不可少的功能,不仅能带来交互的极大改善,同样也对系统日后的维护也起着非常大的作用。然而分页的实现比较繁琐,而且很多可以共用的,因此有一个共用的分页类会极大改善开发效率,减少代码冗余,为此设计共用分页类。本系统采用的分页类包括:分页容器类(PageResultContainer)如下表4-1所示和分页助手类(PageResultHelper)如下表4-2所示。表4-1 分页容器类类名称属性/方法类型/返回值备注PageResultContainerresultListList查询结果集totalRowLong总记录数startRowint当前页开始记录数pageSizeint每页显示的记录数量startPageint开始页endPageint结束页pageCurrentint当前页pageNextint下一页pagePreint上一页Get().set().属性的get,set方法。表4-2 分页助手类类名称属性/方法类型/返回值备注PageResultHelperpageQuery(Connection conn,String sql,Object params,int pagesize,int currentPage,RSHandler rsh)PageResultContainer功能描述:此类是分页的助手类,用于收集分页所需的参数。4.2.2 数据库链接公用类本系统使用了大量的数据库操作,因此设计一个通用数据库操作的共用类,以提高代码的复用和便捷性,数据库操作共用类设计如下表4-3所示。表4-3 链接数据库共用类类名称属性/方法类型/返回值备注QueryUtilBatch(Connection conn,String sql,Object params)Int功能描述:此方法是用于批量更新(更改,删除,修改)。Get(Connection conn,String sql,Object paramsRSHandler rsh)Object功能描述:此方法用于获取一条记录。此记录可以是一个Map对象,也可以是一个Bean实体对象。Query(Connection conn,String sql,Object params,RSHandler rsh)List功能描述:此方法用于获取一个记录列表,记录可以是一个Map对象,也可以是一个Bean对象。Update(Connection conn,String sql,Object params)int功能描述:用于增、删、改记录。4.2.3 DAO层共用接口考虑到本系统中涉及到了大量的增、删、改、查等常规性操作,为了更好复用代码,本系统设计了通用的原子操作组成的抽象接口,多数模块的DAO接口会继承此接口如表4-4所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物医药产业园区厂房使用权转让及合作研发协议
- 离婚协议中房产分割及债务承担补充条款
- 离婚后复婚条件及同居期间财产共享协议
- 互联网企业定向培养大学生就业合同
- 文化创意产业员工知识产权保护劳动合同协议书
- 工程项目停工损失赔偿及工期延误合同
- 狄咏家庭财产分割及子女抚养权明确离婚协议
- 港口物流企业融资保密及供应链管理协议
- 环保产业股权质押贷款合同样本
- 公共交通行业工伤一次性赔偿及安全保障合同
- 人教版数学二年级上册第一单元 分类与整 理 综合素养测评A卷(含答案)
- 2025年北京市公务员考试行测真题及答案详解参考
- GB/T 16432-2025康复辅助器具分类和术语
- 儿童保健三基培训课件
- 保险法考试题型及答案
- 小儿散瞳健康宣教
- b级英语考试题型及答案
- 开业活动湘菜活动方案
- 环保设备介绍
- 配电柜接线外包合同
- 高血钾与急救处理
评论
0/150
提交评论