




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于WEB的进货销售与库存管理系统摘 要企业进销存管理是企业经营管理中的重要环节,也是一个企业能够取得效益的关键,如果能够做到合理生产,及时销售,库存量最小,减少积压,那么企业就能取得最佳的效益。由此可见,进销存管理决策的正确与否直接影响了企业的效益。企业进销存管理系统就是在这种状况下出现的。它利用计算机的技术,使得企业生产、库存和销售能够有利结合起来,产销衔接,提高企业的效率和效益。本系统是基于WEB的进货销售与库存管理系统,它提供了强大的数据管理功能和美观易用的操作界面,实现企业进销存业务管理网络化,即使是异地经营也能获得实时信息。进销存系统将商品从进货到库存,再到销售的整个物资流和资金流的状况进行统一管理,及时掌握经营中的情况,同时能降低管理成本,提高工作效率和经济收益。首先本系统介绍下国内基于WEB的进货销售与库存管理系统的研究和应用现状,以及相关技术应用现状,并简要介绍了MVC模式和J2EE框架;然后在该理论基础上,根据企业现状和经营特点,提出企业现存问题、然后分析问题,并提出了系统的设计思想;接着,对系统进行全面需求分析,并分析了系统的主要流程,在设计阶段,首先进行了系统的WEB架构设计,然后分别对Web层、业务逻辑层、数据持久层进行了总体设计,并对数据库进行了设计。最后,结合J2EE平台开发了一套适合同类企业的进销存管理系统,从而提高了企业的管理水平。关键词:进销存;J2EE;MVC架构;SSHStocking Selling and Storing Management system Based on WebAbstract Enterprise management of buying-stock-selling is not only an important part of operation management of all enterprise but also a key to gain economic benefitAn enterprise can achieve best economic benefit by reasonable production,in time sale,minimum inventory and reducing overstockThus is can be seen that the economic benefit of an enterprise is directly influenced by decision of buyingstock-selling managementThe Enterprise management of buyingstockselling is created in this situationIt integrates production,inventory and sales together by computer technology to improve effieiency and benefit of an enterprise. The system is WEB-based purchase sales and inventory management system, which provides powerful data management features and beautiful and easy to use interface, to achieve enterprise buying-stock-selling operational management Networkization, even if a remote operator can get real-time information. buying-stock-selling system to purchase goods from inventory, then sell the entire material flow and cash flow situation of unified management, grasp and management in the situation while can reducing management costs, increase efficiency and economic benefits. Firstly,this paper introduces the present research and application of development situation of buyingstockselling management system at home,and also introduces the application situation of the relevant technologiesThen gives a brief introduction of MVC model and the J2EE frameworksSecondly, list the problems existing in the enterprise at present under enterprise actuality and management features,and after the analysis of the problems,propose the solutionThirdly, by integrating Struts、Spring and Hibernate together to build a J2EE architecture based on the requirement analysis completely and the process analysis,then design for each layer such as Web tier,business logic tier and data Persistence tier in detail,and design for the databaseIn the end,a system will be developed based on J2EE platformIt adapts to congener enterprise and enhances the management standardsKey Words: BuyingStockSelling; J2EE; MVC Architecture; SSH 54 目 录中文摘要I外文摘要II1绪 论11.1 课题研究背景和意义11.1.1 研究背景11.1.2 研究意义11.2 技术应用现状21.2.1 J2EE平台21.2.2 MVC设计模式21.2.3 J2EE框架31.3 本文的主要内容和组织结构32 MVC模式和J2EE框架52.1 MVC模式52.1.1 MVC的优点52.1.2 MVC实现框架的选择52.2 Struts框架72.2.1 Struts1.x概述72.2.2 Struts1.x的体系结构72.3 Hibernate框架82.3.1 Hibernate概述82.3.2 Hibernate的ORM技术92.3.3 Hibernate的体系结构102.4 Spring框架112.4.1 Spring概述112.4.2 Spring的核心机制123 进销存管理系统的分析143.1 系统可行性研究143.1.1 问题的提出143.1.2 分析问题143.1.3 系统设计思想153.2 系统需求分析163.2.1 用户需求分析163.2.2 系统功能需求173.2.3 系统功能分析173.3 系统流程分析183.4 系统的开发环境和运行环境194 系统WEB架构214.1 架构设计的目标214.2 架构总体设计225 系统数据库设计235.1 数据库E-R图设计235.2 数据库主要表设计246 进销存管理系统的实现276.1 域模型对象276.2 持久层实现276.3 业务逻辑层实现306.4 表现层实现326.5 页面功能显示327 总 结37致 谢38参考文献39外文原文及译文401 绪 论1.1 课题研究背景和意义1.1.1 研究背景自中国加入WTO以来,我国经济的发展取得了瞩目的成就,在全球化、网络化、信息化趋势下,快速成长是中国企业的典型特征。但是,企业在快速成长的同时也面临严峻的挑战。就目前我国的企业来说,无论是哪个行业,企业内部管理都可能遇到这样一些问题:有销售订单却没有办法如期交货;不能及时供应生产所需要的原料,但某些材料却在仓库里大量囤积,由于产品积压导致资金周转很慢等等。在激烈的竞争和内外环境的压力下,面对这些问题,许多企业深深感到传统的管理方式和落后的管理手段已不能满足企业生产管理和发展的需要。那么,能否找到一个有效的办法来解决呢?因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用软件管理进货、库存、销售等诸多环节也已成为趋势及必然,引进先进的管理技术实现企业信息化是一条切实可行的途径。1.1.2 研究意义目前,我国企业管理信息系统已经相当普及,但仍存在着一些问题,制约了企业的进一步发展,主要表现在以下几方面: 1系统要素之间缺乏必要的联系,即企业部门管理模块及数据之间缺乏有机的内在联系,计算机处理系统没有形成网络,企业的物流、资金流、信息流不畅通,信息无法集中、共享。 2业务流程及管理存在不合理的地方,统计数据无法做到及时准确。 3系统的可扩展性差,缺乏外部接口,系统无法在网络环境中生存发展。以上信息管理系统问题的存在,制约了企业的进一步发展。随着计算机网络技术的快速进步及客户需求的日益多样化,产业竞争环境越来越激烈,企业经营除了降低成本、提高质量外,更需要以先进的管理理念来整合企业内部与外部环境。因此,开发一个检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低进销存管理系统,都能够极大地提高货品进销存的管理效率,也是企业进销存管理科学化、正规化,与世界接轨的重要条件。1.2 技术应用现状1.2.1 J2EE平台J2EE平台的成熟,为Web应用程序更进一步的发展提供了更广阔的空间。目前,大部分语言比如ASP、PHP开发出来的Web应用,它的前台页面与后台数据就是混合层的数据编程,虽然开发的速度往往比较快,但是数据页面的分离不是很直接,耦合度很高,因而很难体现出业务模型的样子或者模型的重要性。用这样的方式设计出来的系统弹性力度很小,很难满足用户的变化性需求,与这些传统的开发方法相比,J2EE是一种企业级的应用,有着严格的规范,更能够胜任迅速开发一个灵活而又功能强大的Web信息系统。1.2.2 MVC设计模式首先什么叫MVC?MVC就是一个三层框架,一是View显示层,用来显示数据结果,二是Model层,用来处理业务逻辑,三是Controller控制层,用来控制整个系统的流程方向,其分三层的作用就是在于降低程序的耦合底,三层各司其职,互不影响。显示层专门用来显示数据的,它可以灵活多变,以不同的形式将数据显示给用户看,Model层是代码的可重用性高,可减少代码的编写量,使程序更加优化,控制层采用的是一种单点接触的思想,就是将程序中的流转集中起来管理,这样使程序更加容易管理和维护。正是由于MVC有着这样的好处,因此在面向对象的编程过程中,软件编程人员更加注重代码的重用性和可维护性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构,为开发者提供了好的设计经验。设计模式的思想是将程序中可能变化的部分与不变的部分分离,尽量减少对象之间的耦合,当某些对象发生变化时,不会导致其他对象都发生变化。其中MVC模式是一种目前广泛流行的软件设计模式,随着J2EE的成熟,它正成为J2EE平台上推荐的一种设计模型,将业务处理与显示分离,将应用分为模型、视图以及控制层,增加了应用的可扩展性。1.2.3 J2EE框架目前,J2EE多层架构上已经开发出了很多框架,这大大减轻了开发人员的负担,开发者可以将不同层上的框架整合到一起,从而能够从繁杂的底层编码中解脱出来。在构建Web应用时,用户请求的处理、业务逻辑处理以及数据的持久化和事务的管理是必须仔细考虑的因素,而且也是大部分应用必须具备且较为复杂的职责。因此目前针对表示层、业务层、数据持久层这三方面人们开发了很多框架,如Struts、Spring、Hibernate等等。1.3 本文的主要内容和组织结构本论文在分析了现有框架技术的基础上,针对现有的库存管理系统进行分析,结合进销存管理系统的理念,构建一套适合此进销存管理系统。它基于J2EE平台,由整合Struts,Hibernate, Spring三大框架后形成的集成架构实现。本文的具体结构为:第一章绪论部分阐述了本课题的研究背景和研究意义,介绍了国内进销存管理系统的研究现状、所需用到的相关技术的应用现状及本文的组织结构。第二章介绍MVC模式和J2EE框架,首先通过比较几种不同的MVC实现框架说明最后的选择框架的优点,接着对目前应用比较成熟的Struts、Hibernate和Spring框架进行相关介绍。第三章进销存管理系统的分析。首先对系统进行了可行性研究,指出了系统要解决的问题,并提出系统的设计思想;接下来对系统进行了需求分析,最后分析了系统流程,并确定了系统的开发环境和运行环境。第四章系统WEB架构设计。在这章中明确了系统架构设计的目标后,对系统进行了WEB架构的总体设计,包括怎样对Struts和Spring框架进行整合,如何整合Hibernate和Spring框架,最后介绍了集成框架的工作流程。第五章数据库设计:在对系统进行WEB架构设计后,首先对系统流程进行设计,然后按照J2EE的分层结构,对持久层,业务逻辑层和表现层分别进设计,最后对数据库进行了概念设计和逻辑设计。第六章系统的实现。本章主要介绍了系统的实现基础,然后按照J2EE的分层结构,逐层分析并给出相关代码示例,最后给出了部分页面的显示结果图。最后在总结中,总结作者的主要工作,并在此基础上提出以后研究和发展方向。2 MVC模式和J2EE框架2.1 MVC模式2.1.1 MVC的优点1、低耦合性:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。2、高重用性和可适用性:随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。3、较低的生命周期成本:MVC使降低开发和维护用户接口的技术含量成为可能。4、快速的部署:使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。5、可维护性:分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。6、有利于软件工程化管理:由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。2.1.2 MVC实现框架的选择MVC模式从概念上定义了基于Web应用的框架技术,同时支持MVC模式的框架技术也是种类繁多,目前比较主流的有Struts,Webwork,SpringMVC等。那么面对琳琅满目的框架,究竟该使用哪种呢?哪种才是最好的呢?笔者认为,对于各种框架技术,不存在绝对的好与不好,而是各有所长,针对不同的应用需求选择合适的框架技术才是上策。下面针对几个主流框架技术进行简单的比较:1Struts首先Struts是基于MVC设计模式的框架(framework),MVC上文已经讲过。正是因为它是基于MVC设计模式的框架,因此是有着MVC设计模式的优点。优点:三个层次各司其职,互不影响,降低了程序的耦合性,并且Struts提供了大量的标签库,这样使得JSP页面尽量少出现Java代码,其JSP页面纯净、代码美观,耦合度底。缺点:ActionForms使用不便、无法进行单元测试,有些技术显得过时,最重要的不足之处还是自己写的action 代码必须继承Action而Action里面的execute(ActionMapping ,ActionForm,HttpServletRequest,HttpServletResponse)方法包含了这几个参数,而这些参数就决定了我写的action必须要在服务器上运行。脱离了服务器就不行,这样代码的重用性就很差,因此这点就是很不好的。2WebWork优点:结构简单易于扩展、标签库易于定制、拦截器非常出色,WebWork支持广泛的模板语言(Velociy和FreeMarker),完整的tag支持,模块写好后容易插入。一个jar包就可以包括所有的action和view(得益于Rl的classPath支持),和其他工具兼容性好。缺点:文档示例很少、客户端验证技术不成熟。3Spring MVC优点:稳定可扩展,支持了i18n、文件上传、异常处理,这些稳定的支持给开发者坚实的基础。与Spring集成,对IoC原生支持。缺点:使用人数少、.jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器,不适合需要组件化开发的场景,配置较困难。因此,在考虑系统设计时,综合以上各框架的特点,在开源领域,基于Struts1.x的MVC是很有灵活性,并且层次非常清晰,简单宜用,具有很大的发展前景和优势,故在选择开发框架时,以Struts1.x为优选。2.2 Struts 框架2.2.1 Struts 1.x 概述从过去的岁月来看,Strutsl.x是所有MVC框架中不容辩驳的胜利者,不管是市场占有率还是所拥有的开发人群,Strutsl.x都拥有其它MVC框架不可比拟的优势,同时,Strutsl.x是世界上第一个发布的MVC框架。Strutsl.x框架以ActionServlet为核心控制器,整个应用由客户端请求。当客户端向Web应用发送请求时,请求将被Struts的核心控制器ActionServlet拦截,ActionServlet根据请求决定是否需要调用业务逻辑控制器处理用户请求当用户请求处理完成后,其处理结果通过JSP呈现给用户。当然对于Struts1.x也存在着许多不足的问题:1)对于Strutsl.x框架而言,因为它与JSPServlet耦合非常紧密,因而导致了很多不可避免的缺陷,随着WEB应用的逐渐扩大,整个程序将显得非常复杂和庞大。2)代码严重依赖于Strutsl.x API,属于侵入式设计Strutsl.x的Action类必须继承Strutsl.x的Action基类,实现处理方法时,又包含了大量的Servlet API如ActionMapping,ActionForm和ActionForward类。这种侵入式设计的最大弱点在于,一旦系统需要重构时,这些Action类将完全没有利用价值,成为一堆废品。可见,Strutsl.x的Action类这种侵入式设计导致了较低的代码复用。2.2.2 Struts1.x的体系结构Struts1.x它的层次分明,分为三层,各各层次都能独立运行,互不干扰,耦合度底,它的四大核心类是:ActionServlet:它是中心控制器,专业用来接受用户的请求,以及请求后给用户作用相应的应答,采用了单点接触的思想。ActionMapping:它实质上就是Struts整个应用流程的指导说明书,告诉Struts怎么样去运行,和找到对应的处理方法。ActionForm: 它主要是用来接受用户传过来的参数,当参数多时用它,就比较方便和便于管理。Action:主要就是用来真正处理业务的,它根据用理的请求,给用户进行相应的业务处理。其整个流程图如下: CilentActionSerlvetActionMappingJSPActionurl=*getServletPath()根据path找到相应的action和actionForm类名返回action、actionFrom对象使用客户传来的参数添充form表单执行Excute(ActionMapping,ActionForm)方法返回ActionForward()/urlForward给相应的jsp显示给用户ActionForm图1.1 struts流程图2.3 Hibernate框架2.3.1 Hibernate概述从八十年代开始,就有很多公司和研究机构在进行着面向对象与数据库结合的研究。很多应用还是采用简单的JDBC来访问数据库。可是JDBC也有很多局限性,比如调用复杂,容易产生资源泄漏等等,与面向对象的Java语言有一段距离,所以很多开发小组开始思考如何将应用中的数据进行对象化建模,然后再想办法与JDBC结合起来,这就是Java数据库开发中的不断推陈出新的对象包装技术。要将现有的Java对象持久保存到关系数据库,就使用对象关系映射ObjectRelational Mapping,ORM工具来完成,它们能够将对象映射到关系数据库中的行,从而不再需要复杂的持久层,并且使开发人员只需编写最少的SQL。OR Mapping工具有很多种,其中比较有影响力的一种就是Hibernate。Hibernate是一个现在很流行的OR Mapping产品,它是开源软件,代码完全公开。它的接口和类虽然简单,但它的功能很强大。它的查询语言也很独特。Hibernate和其它的ORMapping工具相比,更具有亲和力,对关系的查询更方便,目前Hibernate的用户量和技术支持越来越多了。Hibernate是一种比较彻底的Java对象映射工具,支持使用各种Java思想如Inheritance,Association,Composition,Collections等来实现对象。它可以直接映射大部分的JavaBeans而不需要对它们作任何修改,即使不得不修改,最多在Bean里面加上一些私有访问方法。它还可以将一个用户定义的多个类的实例映射到一张表的同一行,甚至可以利用代理模式来简化载入类的过程。这些功能都大大减少了利用Hibernate查询语言从数据库提取数据的代码编写量,从而节约开发时间和开发成本。每一种持久化机制都有一种对持久化对象属性的访问机制,Hibernate利用Reflection机制,在系统启动时生成SQL语句,进行对象持久化管理。2.3.2 Hibernate的ORM技术Hibernate中最核心的技术就是ORM,所谓ORM,简单的说就是将Java中的对象与对象的关系,对应到关系型数据库中的表与表之间的关系,Hibernate提供了这个过程中自动对应转换的方案,相反地,也提供了关系型数据库中的表与表之间的关系,对应至Java程序中的对象与对象的关系。Hibernate在Java程序与数据库之间进行转换,Java程序员事先定义好对象与数据库表格之间的对应,此后Java程序设计人员就可以使用熟悉的面向对象程序设计方法编写程序,而不再需要进行特定的与SQL之间的转换,所有SQL的转换交由Hibernate进行处理。也就是说,Hibernate中提供了数据查询和获取数据的方法,从而大幅度减少了开发时人工使用SQL和JDBC处理数据的时间。Hibernate的目标是承担开发人员为了实现数据持久处理而需要做的大量重复性工作,帮助开发人员轻松地从数据表中获取到的结果集,从表的表示形式直接转换到对应的对象表示形式。也就是说,原先需要开发人员手工编写代码实现将记录字段中的值取出封装成对象的过程,以及将对象中的属性值分别取出作为对应记录字段值存储到数据表中的过程都可以交给Hibernate提供的相关工具完成。Hibernate本身带给我们的不仅仅是一种软件开发的架构,更是一种值得推广的数据持久性解决方案。这些数据持久性设计的概念,是可以在脱离开Hibernate之后,推广应用到更广泛的数据持久性处理领域中的。目前,EJB30中的实体Bean的最新设计已经采用了和Hibernate类似的方案。2.3.3 Hibernate的体系结构Hibernate对每一种数据库有对应的Dialect进行操作优化,从而提高它在各种情况下的效率。支持的数据库有Oracle,DB2,MySql, Microsoft SQL Server。它可以和多种Web服务器或者应用服务器良好集成,使得开发者可以根据不同的需要来选择Web服务器。图22展示了Hibernate的体系结构。 ApplicationHibernate Properties/XMLPersistent ObjetctDataBase图2.2 Hibernate体系结构从整个应用程序的高度看,Hibernate处于数据库与应用程序之间,为应用程序提供持久化对象到数据库的服务。Hibernate使用数据库和配置文件来为应用程序提供持久化服务, 即它使用hibernateproperties或Hibernate.cfg.xml和XML Mapping两个配置文件把普通Java对象映射成关系数据库中的表。2.4 Spring框架2.4.1 Spring概述Spring Framework是由Rod Johnson创立的一个开放源码的应用框架。它是轻量级的J2EE应用程式框架,旨在简化J2EE的开发,降低J2EE项目实施的难度。Spring Framework的贡献包括两个部分,首先是为J2EE应用提供了一个优雅的基础结构:另外它还提供了许多旨在帮助开发人员更好的使用J2EE相关技术的工具性支持。同时,Spring框架也是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,如图2.3所示。组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。Spring AOP通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何对象支持AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO的面向JDBC的异常遵从通用的DAO异常层次结构。Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatis SQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。Spring W曲模块:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Spring MVC框架:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POI。Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE环境(Web或EJB)、独立应用程序、测试环境之间重用。SpringAopSource-level ITetadata AopinfrastructureSpring ORMHibernate SupprotiBats supportJDO supportSpring DAOTransaction infrastructureJDBC supportDAO supportSpring WebWebApplicationContextMutilpart resolverWeb ultitiesSpring ContextApplication ContextUI supportValidationJNDI EJB support and remodeling MailSpring Web MVCWeb MVCFrameworkWeb ViewsJsp/VelocityPDF/ExportSpring CoreSupporting ultitiesBean Container图2.3 Spring体系结构图2.4.2 Spring的核心机制 (1)控制反转依赖注入(IOC)反转控制通俗的讲就是由容器控制程序间的关系,而非传统实现中,由程序代码直接操控。控制权由应用代码转到了外部容器,控制权的转移就是“反转”大师Martin Fowler也提出了一个新的名字“依赖注入,即组件的关系由容器在运行期间决定,容器动态的将某种依赖关系注入到组件之中。依赖注入的目标并非为软件系统带来更多的功能,而是为了提升组件重用的概率,并为系统搭建一个灵活、可扩展的平台。依赖注入主要有三种形式:l、接口注入接口注入是一种比较老的注入方法,其核心思想是借助接口来将调用者与实现者分离。2、设值方法注入设值方法注入在实际开发中应用最广泛,主要是通过类的Setter方法完成依赖关系的设置。3、构造子注入使用构造子注入的时候,类以构造函数参数的形式描述自己需要的依赖关系。三种注入方式中,接口注入模式因为要求组件必须与特定的接口相关联,因此不被看好,实际使用很有限;设值注入和构造子注入的依赖注入实现模式均具备无侵入性的特点,即代码中不需要涉及框架的专有类,可将其纳入框架的容器进行管理。(2)面向方面编程(AOP)Spring的另外一个核心机制是AOP(AspectOriented Programming)面向方面的编程,也称为面向切面的编程,它提供了从另一个角度来考虑程序结构以完善面向对象编程(OOP)。在AOP的应用中可分为动态AOP和静态AOP。静态AOP指的是,切面在编译时应用。动态AOP指的是通过动态代理模式,在对象方法调用前后实现应用。在Spring中,主要应用动态代理模式,切面在运行期间动态应用,不用重新编译就可以对切面进行改变。高效、灵活的运用两种AOP技术,能够满足几乎所有的应用需求。在Java中实现AOP框架的很多,从最重要的织入方式来说,大致可以分为三类:1静态织入(编译期织入):借助预编译器对源代码进行增强,Aspect J是这方面的代表。2装载期织入:框架修改classloader,在加载类时对其进行二进制增强,代表是JBossAOP。3运行时织入:利用Java动态代理(dynamic proxy)在运行时拦截方法调用,并织入方面逻辑。因为这种方式很灵活,且对被织入模块的侵入性较小。所以Spring的AOPAPI就采用的这种方式。3 进销存管理系统的分析3.1 系统可行性研究3.1.1 问题的提出传统的信息传递和管理方式不仅高效率低,可靠性、安全性和保密性也无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到企业的“进”、“销”、“存”出现问题时,早已产生了严重的后果,现今的企业并不只是人力资源、资金和产品的组合,它还应该包括供应、销售、市场营销、客户服务、需求预测,以及其他更多的东西。如果一个企业资源计划(ERP)系统真正想要最大限度地提高其效率,它必须能够非常融洽地和其他关键性的商务领域进行交流。然而目前许多企业还处于原始的手工操作和人工管理,使得每一个环节都要浪费大量的人力、物力和时间,大大增加了投资,减少了回报,因此我模似了企业的需求,进行开发企业所需要的基于WEB的进销库存管理系统。3.1.2 分析问题根据自己的了解和深入企业业务的了解,将进销与库存管理系统总体分成6个部分, 即系统模块、入库业务管理模块、出库业务管理模块、退料业务管理模块(还库业务管理模块)、盘点业务管理模块(报表输出)、需求管理模块。对于每一个功能模块,都包含了数据录入、编辑、查询、统计、打印、应急、帮助等功能并且模块之间数据要有关联。例如入库的主要流程是:当发现相应的产品库存量不足时,就需要相应的人员去下订单购买相应的产品,订单下完后,相应的库存量也要增加,即是入库量,和库存量之间数据要有联系等等。这一系列的问题亟待解决,随着经济的全球化以及中国经济改革的逐渐深化,销售业面临着越来越激烈的竞争,改善企业内部以及整个供应链各个环节的管理、调度及资源配置,迅速适应客户的新需求和市场新机遇的能力,是中国企业赢得竞争胜利的决定性因素,如何快速有效地实现跟单,如何有效的控制库存,这一切都是本管理系统所力求实现的功能。从根本上说,企业就是一个利用资源(人、财、物、时间),为客户创造价值的组织,企业资源计划就是对这些资源进行计划、调度、控制、衡量、改进的管理技术和信息系统。现今的企业并不只是人力资源、资金和产品的组合,它还应该包括供应、销售、市场营销、客户服务、需求预测,以及其他更多的东西。如果一个企业资源计划系统真正想要最大限度地提高其生产能力,它必须能够非常融洽地和其他关键性的商务领域进行交流。3.1.3 系统设计思想根据进货销售与库存管理系统的基本设计思想是把整个系统按照实现模块进行分解,采用J2EE架构,Oracle数据库。从系统的升级和维护方面考虑,采用Struts,Spring,Hibernate三种开源框架,这样系统分层清晰,便于维护,其系统的分层结构图如图3.2所示。从图3.2可以看出,进销存管理系统采用J2EE平台,其表示层由Struts管理,业务逻辑层由Spring管理,数据持久层由Hibernate管理,数据信息层在本系统内主要指数据库系统,该系统采用的是Oracle数据库,用来存储和管理系统的数据。Front Controller Struts Action Validation View(jsp)StrutsService InterfaceService Bean Transaction Managerment Business Beans Hibernate IntegrationSpringData Access Object O/R Mapping Hibenate Services Transaction ManagermentHibernateDataBase(Oracle)表示层业务逻辑 层数据持久层数据信息层图3.2 系统分层结构图3.2 系统需求分析3.2.1 用户需求分析经调研分析,本系统的参与者有:系统管理员,库房人员,采购人员,使用人员。根据用户需求,系统设定为二种用户角色:系统管理员和一般用户,具体分析如下:系统管理员:系统管理员可以对整个系统进行管理,包含对各种信息的管理。一般用户:只能根据自己的权限对相应的模块进行录入、删除、查询与自己部门业务相关的数据。3.2.2 系统功能需求在可行性分析阶段已经粗略地研究了该项目的需求,但为了准确地确定目标系统必须做什么,了解用户的明确需求,我认真调研了企业的业务流程,听取了企业相关人员对系统的要求,结合供应链管理和软件工程的思想,得出了企业进销存管理系统总的业务流程。整个系统可以划分为6个子模块,分别为系统模块、入库业务管理模块、出库业务管理模块、退料业务管理模块(还库业务管理模块)、盘点业务管理模块(报表输出)、需求管理模块。系统功能结构图如图3.4所示。基于WEB的进货销售与库存管理系统系统模块入库业务管理模块出库业务管理模块退料业务管理模块入库业务管理模块盘点业务管理模块退料业务管理模块入库业务管理模块需求管理模块图3.4 系统功能结构图3.2.3 系统功能分析 1系统模块:这个模块主要就是整个的整个流程,系统管理员可以对整个系统进行管理,它主要有,对产品的增、删、改、查、统计、产品报警、打印报表。 2入库业务管理模块:这个模块主要就是对产品进行入库,当发现库存量不足时,产品就会出现报警状态,这时就要相应的工作人员进行订购产品,随之进行入库,并且库存量相应的增加,工作人员可以对入库的产品进行修改、删除、查询等操作。 3出库业务管理模块:这个模块主要就是对产品进行出库,当客户需要产品时,就要给客户进行发货,也就是要将产品进行出库,出库的同时,库存量也要相应的减少,相应的工作人员能够对出库进行修改、删除、查询等操作。 4退料业务管理模块:这个模块主要就是当产品出现质量问题时,接受客户的退货,此时相应的库存量就要增加,相应的工作人员能够对退货进行修改、删除、查询等操作。 5盘点业务管理模块:这个模块主要就是对产品进行统计,统计产品的入库、出库、退货等产品的数量,根据相应的产品数量进行生成相应的报表图形,以一种图形化来展示当月的入库量、出库量、退货量等,给人以更加直观的模式来分析当月的产品动态趋势。 6需求管理模块:这个模块就是对相应的需求部门进行产品的入库、出库操作。3.3 系统流程分析 在企业实施信息化过程中,对企业处理流程进行调整和优化是十分必要的。在系统实施前,对企业的处理流程进行详细调研设计,根据公司的具体情况和信息化管理的特点确定网标业务流程,规划详细的解决方案。本系统的主要操作流程图如图3.5所示:图3.5 系统流程图3.4 系统的开发环境和运行环境基于J2EE架构的应用程序,具有Java程序的基本特性:“一次编译,到处运行”。SSH架构的产品在开发和使用阶段对硬件条件没有特殊要求,在设计开发过程中,出于性能和效率的原因,我们采用了较为简单的Tomcat-6.0服务器。以下是系统的开发环境:操作系统:Windows 7数据库:Oracle 9iWeb服务器:Tomcat 6.0Java编译器:JDK l.5.0.12开发框架:Struts1.2.7+Spring2.0+Hibernate3.0+Aajx+JQuery开发工具:MyEclipse 6.04 系统WEB架构4.1 架构设计的目标软件系统的架构是一个宏大的话题,所谓架构设计就是需要将系统划分为具有相互关联的若干组成部分,如何使各个部分有机的组织起来、相互作用,以及对系统中逻辑、物理、系统等关联做出明确定义。良好的架构设计,可以对人力、物力等资源进行合理配置、明确分工,使各个团队互相紧密协作,从更高的角度看待整个系统。由于架构设计是在动态中完成的,因此在把握架构设计的目标上尤其重要。架构设计的目标是设计出一个动态的可伸缩的系统,这样的系统能够伴随着系统功能需求的不断变化动态而方便地扩展,能够保证系统运行的稳定性和可靠性。一个好的架构设计是有一定的准则可遵循的,在系统设计过程中,要不断牢记这个目标,可以概括为以下几点:1合理性:系统在设计之初,要根据应用的具体需求确定架构,不要一味以最流行的设计框架为首选,而应该在充分需求的基础上,确定最合理的架构原则。2重用性:像组装汽车一样组装程序是软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 极地科考船涂料项目可行性研究报告
- 防汛应急培训基本知识课件
- DB65T 4083.4-2017 双语教育资源库 第4部分:功能要求
- 大数据分析市场分析与应用
- 膳食纤维改性-洞察及研究
- 广告合同(期刊上刊登)(样式一)5篇
- 名阳补充协议3篇
- 捐建餐厅协议书7篇
- 建设工程借款合同模板常用版4篇
- 部队夏天安全知识培训课件
- 铁路安全员c证考试题库单选题100道及答案
- 2024年拖拉机进出口贸易合同范本3篇
- 混凝土搅拌运输施工方案
- 肠镜检查前肠道准备
- 光伏电站组件清洗方案计划
- T-CFA 030501-2020 铸造企业生产能力核算方法
- 当代中国外交(外交学院)知到智慧树章节测试课后答案2024年秋外交学院
- 护理工作中的冲突与管理
- 北京地区建筑地基基础勘察设计准则
- 《社区调查报告》课件
- 2025-2025学年外研版七年级英语上册教学计划
评论
0/150
提交评论