网上购物系统本科.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流网上购物系统本科.精品文档.本科毕业论文(设计)网上购物系统二级学院专 业班 级学生姓名学 号指导教师2012年 月 诚 信 声 明我声明,所呈交的毕业论文(设计)是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,论文(设计)中的所有内容均真实、可信。毕业论文(设计)作者(签名): 年 月 日网上购物系统摘要:伴随着计算机技术在各行各业日益广泛和深入的应用,互联网购物早已深入人心。电子商务在各行各业的发展战略中占据了重要的位置,成为各大商家的必争之地。商品的流通已不仅仅局限于传统渠道,网络平台已成为商家展示自己,提升自身形象的舞台。商家通过建立网站,将产品、资源等各方面信息展现在互联网上。而计算机和互联网技术本身所具备的信息透明度、信息高速传播和快速管理等特征,不仅可以改进商家原有经营方式与经营效率外,也为商家带来了更高的效益。因此,对于商家来说,拥有一个属于自己的购物网站是至关重要的。本网站是基于J2EE开发的B2C电子商务网站,主要完成网站的整体设计以及各个功能的实现。采用JSP作为顶层表示技术,struts实现MVC模式的架构,运用spring整合系统,即目前较流行的SSH框架,开发出一个具有良好扩展能力的J2EE商城网站。使用MyEclipse作为代码开发工具,在Windows XP操作系统平台下,采用MySQL作为数据库服务器,Tomcat作为解析服务器。本论文以系统的开发为线,从软件设计的角度对系统的理论基础、系统整体布局及系统具体设计进行了详细研究,其中某些功能,如电子支付功能,由于局限于条件,只做理论分析。关键字:B2C,j2ee,MySQL,SSH,MVC,电子商务,网上购物注:本论文(设计)题目来源于教师的国家级(或省部级、厅级、市级、校级、企业)科研项目,项目编号为: 。Online shopping systemAbstract:Along with computer technology, Internet shopping has long been popular in all walks of life increasingly extensive and in-depth applications. E-commerce development strategies of all walks of life to occupy a major position, become the battleground of the major businesses. The flow of goods is not limited to the traditional channels, the network platform has become a business to show themselves, enhance their own image of the stage. Businesses through the creation of websites, products, resources, and other information is displayed on the Internet. The characteristics of computer and Internet technology have transparency of information, high-speed dissemination of information and rapid management can not only improve business the old way of operating efficiency, but also bring higher efficiency. Therefore, for the business, we have a shopping site is crucial.This website is based on J2EE development of B2C e-commerce website, complete the site's overall design and function to achieve. Using JSP as the top-level technology, the struts MVC pattern architecture, using the spring integrated system, that is, the more popular SSH framework, to develop a good scalability of J2EE mall site. Use MyEclipse as a code development tool in the Windows XP operating system platform, using MySQL as the database server, Tomcat as the resolution server.This thesis to the development of the system line, the theoretical basis of the system from the perspective of software design, the overall system layout and system design were studied in detail, some of functionality, such as electronic payment, confined conditions, only the theoreticalanalysis.Keywords: B2C, j2ee, MySQL, SSH, MVC, e-commerce, online shopping目 录前言111 问题定义及内容简介11.1.1目的与意义11.1.2研发背景21.1.3可行性分析21.1.4各章节内容简介32系统需求分析52.1 需求背景分析52.2功能需求分析52.3 业务流程分析63 系统设计93.1 系统总体结构分析93.2 数据库设计93.2.1数据库的设计思想93.3系统的开发技术简介与运行环境143.3.1 Struts+Hibernate+Spring的技术原理143.3.1.1 Struts技术原理143.3.1.2 Hibernate技术163.3.1.3 Spring技术173.3.2 Tomcat互联网服务器技术193.3.3 MySQL数据库技术203.3.1运行环境214 主要模块详细设计224.1系统体系结构224.2主要子模块的详细说明224.2.1用户注册和登录模块22注册页面,用户正确填写相关信息之后,后台自动创建新用户。224.2.2 产品信息模块254.2.3 分类管理模块27编辑分类页面可以添加该分类的一些属性,如CPU,内存,硬盘等等的参数均在此添加,页面设计如下:28在分类列表页面可直接删除分类信息。删除后直接跳转回列表页面。284.2.4 购物车模块294.2.5 订单模块304.2.6 优惠信息模块334.2.7 反馈信息模块344.2.8 物流信息模块354.2.9 用户信息模块355使用说明书375.1运行环境简介376 软件测试387 结束语40参考文献41致 谢42前言近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起网络商店,向消费者展示出一种新颖的购物理念。最新发布的中国网上购物消费者调查报告2011显示,2010年度我国网上购物继续高速发展,全年网 购规模达到4980亿元,占到了全国社会商品零售总额的3.2%,网购人数达到1.85亿,网上购物在网民中的渗透率为40.6%。上海和北京的网购规模 分别突破400亿元和300亿元,杭州、广州、深圳和苏州4个城市的网购规模突破百亿元大关。调查显示,京东商城和凡客在2010年度表现突出,市场份额 分别比上一年度提升了1.1和0.8个百分点。由此可以看出当前网上购物的迅猛发展以及今后网上购物的发展模式,即使以商城为主导的中大型B2C网站发展模式。本论文将为客户设计较为先进性的网站系统。设计方案立足当前流行的变成技术,以先进的观点和设计思路实现商城的服务性,实用性和便利性。11 问题定义及内容简介1.1.1目的与意义建立网上商城可以提高商业交易的效率、范围, 网上商城 以在线交易、客户服务为核心。降低人工、经营本钱,这对于全面推进商家的信息化网络化具有重要意义。1 网上商城 有利于树立和提高企业形象。提高商家对客户的服务水平及客户服务效率,同时大幅提高商家员工的信息化水平。2 网上商城 能很好地为客户提供在线咨询及反馈。增强客户与商家交流与沟通的能力,协助商家以更快的速度了解客户需求,同样客户也能从 网上商城 快捷地获得商家对产品的售前及售后服务。3 网上商城 一个重要的目的就是提供在线交易服务。为客户与商家之间形成互通及企业内部办公自动化,最终构建企业“电子商务”打下坚实基础。4 信息网络正在生长为 “ 第四媒体 ” 将成为人们获得信息的实现社会多种功能的主要载体。可以改变企业的信息化建设、产品销售和客户服务在激进方式下人力资源的比重失调,极好地体现企业在行业领域的知名度及企业的信息资源。5 网上商城有助于行业建议产品及信息资源的市场价值。从而带动商家产品在业界的品牌与地位,营造有利于商家生存与发展环境,加速企业信息化发展。1.1.2研发背景互联网技术的飞快发展给人们的生活带来了巨大的变化,电子商务的发展催生了一种新的购物方式网上购物,它以快速的信息更新,方便快捷的购物方式,实惠的商品定位吸引了越来越多的人参与其中。相比传统零售行业,网上购物具有许多无可比拟的优势。首先,以商铺销售或商场销售等为代表的零售行业因受地域限制,其影响范围仅限于较小的区域,而借助四通八达的互联网,消费者可以通过网上商城浏览和获取世界各地商家的商品信息;其次,通过网上购物渠道,消费者可以足不出户地进行购物;再次,同样是管理商品信息和统计,传统零售行业需要花费大量劳动力才能完成,而销售网站许多信息都可以轻松地进行自动化管理,极大的降低企业的管理成本;最后,建立自己的网上购物系统,有利于提升企业和商家的企业形象,提高服务质量,展示企业的信息化水平。虽然网上购物具备以上的诸多优点,但由于该行业刚刚兴起不久,目前发展程度较低。据互联网统计机构统计,截止2010年底,网络购物销售份额只占到零售业销售总额的0.6,由此数据可知,该行业的发展潜力巨大,研究和开发优秀的网上购物商城系统,对推动行业的发展,提高网上销售综合竞争力有着重要的意义。本课题的目的在于通过对网上商城开发,初探当前互联网编程的一些流行框架和技术,同时通过参考当前较为成功的商城网站的设计,探寻更佳的购物体验和更高效的产品信息管理,实现更轻松快捷的购物体验,降低传统商户进行网上交易的门槛。1.1.3可行性分析l 经济可行性本系统最大的特色是用的开源的软件开发工具MyEclipse。应用服务器用的是tomcat这些都是免费的。而且结合JAVA的跨平台性,使该系统能稳定的运行与所有常见的WINDOWS,UNIX,FreeBSD,Linux操作系统上, 这样整个系统的软件成本得到很大程度的节约,只需要投入人力成本和硬件成本。由于本系统无平台的限制,与其它的系统相比,本系统独立性相当强,这样只需要投入较少的资金就可以达到预期的要求。在系统运行环境中,软硬件都无需做巨大投资,只利用现有计算机设备即可。因此在经济上可行的。l 技术可行性本系统采用JSP+Struts+Hibernate+Spring为网站实现技术,建立基于MySQL数据库的核心动态网页,这些技术已近相当成熟,具有平台无关性且安全可靠的特点,完全适合作为面向Internet的开发工具,目前的此技术已成为所有大型电子商务项目的必然选择。本系统总共有两部分组成:前台开发和后台数据库的调用,从技术上讲前台用的MyEclipse开发工具,功能比较强大,结合JAVA WEB技术进行开发。对于数据库部分我们用的是MySQL,采用Hibernate将关系数据库封装成对象,真正体现面向对象编程,易于进行数据库连接,因此本系统的开发在技术上具有可行性。l 操作可行性从目标系统使用难易程度上来看并不复杂,界面设计亲切,容易使用,系统管理员要有一定的数据库方面的知识,但只需专业人事做短期的培训就可以拥有熟练使用系统的能力。最后,就是需要操作员对本系统的各部分功能有全面的了解。因此,本系统在操作上是完全可行的。1.1.4各章节内容简介第1章是绪论, 讲述考试报名系统的开发背景,国内外研究现状,以及论文的组织结构。第2章是系统需求分析。主要内容是系统功能需求分析,业务流,数据流等。第3章是系统设计部分,主要内容是系统的总的体系结构的设计,这部分设计是从数据流导出的;系统数据模型设计,包括E-R图,关系模型和数据表;系统开发和运行环境的确定。从第四章开始介绍了各个主要模块的设计。第4章介绍的是系统实现,包括系统六个模块的体系结构设计,各个子模块功能,界面设计,详细设计,以及在设计时所遇到的问题及解决方案。第5章是用户使用手册,主要内容有系统功能简介、运行环境简介。第6章是软件测试。介绍一般大型软件系统的基本测试步骤步骤。第7章是附录,在附录内收录了一些主要的参考文献、系统代码和致谢语。2系统需求分析在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。 2.1 需求背景分析电子商务近几年在国内的高速发展加速了为电子商务服务的软件行业的发展,随之诞生了许多与之密切相关的网店和网上商城系统。对于网上商城的实现技术,从开源的到商业的,目前非常之多。本课题研究的网上商城系统,指的是支持商户自身面对消费者的卖场模式,也就是一般指的B2C网站。目前大部分商城系统都是基于PHP语言开发,如淘宝商城和shopex,大部分企业和商户都有自己的网站或者POS系统,而且这些系统大多都基于JAVA技术。开发采用JAVA和J2EE技术的系统,可以更方便的实现客户内部各个系统的集成。因此,根据上述分析,在系统框架方面使用当前流行且稳定的J2EE框架spring+struts+hibernate开发。在保证系统稳定的同时尽可能提高系统的安全性和可扩展性。2.2功能需求分析本系统主要应实现以下各个功能:1.页面展示1)商城首页2)产品列表3)产品类别检索4)产品详情5)优惠活动6)购物车2.会员管理1)个人信息维护(会员资料,安全资料等)2)交易详情3)订单管理4)客户反馈5)支付功能3.后台管理1)会员信息管理2)产品信息管理(价格,分类,库存等)3)产品信息录入4)订单管理5)反馈处理6)统计报表(销售统计,盈亏统计)7)物流管理2.3 业务流程分析在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。业务流程图(transaction flow diagram,简称TFD), 就是用一些规定的符号及连接来表示某个具体的业务处理过程,它是用尽可能少、尽可能简单的方法来描述业务处理过程的方法,由于它的符号简单明了,所以非常易于阅读和理解业务流程。所以说,绘制业务流程图是分析业务流程的重要步骤。数据流程分析把数据在组织内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边绘图,一边核对相应的数据和报表、模型等.通过以上的系统需求分析,下面各个模块其流程分析可表示为:其流程分析可表示为:(1) 后台管理功能示意图:用户信息表会员信息管理产品信息表管理员产品信息管理订单信息表订单管理 密码正确登陆投诉建议表反馈处理 密码错误统计报表查看返回重新登陆物流信息表物流管理图1 管理员业务流程图(2)用户功能示意图:图2 用户业务流程图2.4 数据流分析数据流程分析把数据在组织内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边绘图,一边核对相应的数据和报表、模型等,可以得到的数据流图如下: 图3 数据流程图(DFD)3 系统设计3.1 系统总体结构分析该系统总体结构设计如下:图4系统总体结构3.2 数据库设计3.2.1数据库的设计思想数据库(DataBase,简记为DB) 是长期储存在计算机内的、有组织的、统一管理的相关数据的集合。DB能为各种会员共享,具有较小冗余度、数据间联系紧密而又有较高是数据独立性等特点。数据库设计(Database Design,简称DBD)是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立DB结构和DB应用系统。几乎所有的WEB项目都是基于数据库的,这使得数据的设计在整个项目中的地位举足轻重。相关研究表明,在数据应用系统的开发中,项目成功50%靠数据库的设计。良好的数据设计往往能够减少开发的负担。数据库设计是指对于一个给定的应用环境,通过合理的逻辑设计和有效的物理设计来构造较优的数据库模式,建立数据库极其应用系统,满足会员的各种信息需求。数据库设计(Database Design,简称DBD)是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立DB结构和DB应用系统。计算机信息系统以数据库为核心,为现实世界的信息流计算机化,并对计算机化的信息进行各种操作,就是如何利用数据库管理系统,将会员的要求转化成有效的数据结构,并使数据库结构易于适应会员新的要求的过程,这个过程称为数据库设计。3.2.2 数据库简介本系统采用MySQL作为后台管理数据库。MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。3.2.3 数据库需求分析通过对整个系统的分析,依据网上商店的处理需求,对应数据表设计及功能如下。l 商品基本信息表:存放网上商店所销售商品的基本信息。l 商品类别信息表:存放网上商店所提供商品大的分类信息。l 会员信息表:存放网上商店用户的基本信息。l 游客信息表:存放非注册会员的相关信息。l 订单信息表:存放与用户相关的订单基本信息。l 信息显示表:存放用于主页和各种分类页面显示的产品信息。l 物流信息表:存放物流相关数据。l 反馈信息表:存放用户投诉反馈和购买商品后评论的信息。l 反馈信息类别表:存放反馈信息类别。l 商城广告信息表:存放商店的广告信息。3.3.4 数据库关系模型根据需求分析生成的数据库关系模型图如下:图5 E-R图根据选用的数据库管理系统为MySQL,网上商城系统数据库中的各个表字段定义如下所示:1) user为用户信息表,主要保存用户和管理员的的注册信息,如表5-1:表5-1 列名数据类型可否为空说明user_idintnot nullID,唯一标识user_namevarcharnot null用户名user_passvarcharnot null密码real_namevarcharnull真实姓名phonevarcharnull电话addressvarcharnull家庭住址roleintnot null权限emailvarcharnot null电子邮箱remarkvarcharnull备注ipvarcharnot nullIPstatusintnot null删除标示 2)shopcar表,主要存储用户的购物车信息,见表5-2表5-2 列名数据类型可否为空说明shopcar_idintnot nullID,唯一标识user_idintnot null用户IDproduct_idintnot null产品IDproduct_sumintnot null产品数量product_namevarcharnot null产品名称3)product表,主要保存产品信息,见表5-3表5-3 列名数据类型可否为空说明product_idintnot nullID,唯一标识product_namevarcharnot null产品名称pricevarcharnot null价格discountvarcharnot null优惠价格title_displayvarcharnot null标题显示remarkvarcharnot null备注detailvarcharnot null详细介绍discount_idintnot null优惠IDstatusintnot null删除标示imagevarcharnot null图片地址contentvarcharnot null产品参数category_idintnot null类别ID4) order表,储存订单信息,见表5-4表5-4 列名数据类型可否为空说明order_idintnot nullID,唯一标识user_idintnot null用户IDorder_pricevarcharnot null订单总价order_timevarcharnot null订单时间addressvarcharnot null收货地址phonevarcharnot null收货电话area_codevarcharnot null邮政编码statusintnot null删除标示product_idsvarcharnot null产品ID组product_sumvarcharnot null产品数量组namevarcharnot null收件人姓名5)feedback表,保存用户反馈信息,见表5-5表5-5 列名数据类型可否为空说明feedback_idIntnot nullID,唯一标识user_idIntnot null用户IDorder_idIntnot null订单IDcontentvarcharnot null内容create_timetimestampnot null创建时间statusIntnot null删除标示6)express表,保存物流信息,见表5-6表5-6 列名数据类型可否为空说明express_idIntnot nullID,唯一标识order_idIntnot null订单IDuser_idIntnot null用户IDaddressvarcharnot null地址phonevarcharnot null电话area_codevarcharnot null邮政编码corperationvarcharnot null快递公司express_codevarcharnot null快递单号create_timetimestampnot null创建时间statusIntnot null删除标示7)discount表,保存优惠信息信息,见表5-7表5-7 列名数据类型可否为空说明discount_idIntnot nullID,唯一标识discount_namevarcharnot null优惠名称statusIntnot null删除标示7)category表,保存产品类别信息,见表5-8表5-8 列名数据类型可否为空说明category_idIntnot nullID,唯一标识namevarcharnot null类别名称father_idIntnot null上级IDstatueIntnot null删除标示attributevarcharnot null类别参数3.3系统的开发技术简介与运行环境3.3.1 Struts+Hibernate+Spring的技术原理3.3.1.1 Struts技术原理l Struts的由来和发展Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。l MVC简介 模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。 1、模型(Model):模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.2、视图(View):视图是应用程序中用户界面部分,是用户看到并与之交互的界面。 3、控制器(controller) :控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。 MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。 尽管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。一般情况下,Struts框架的,模型是由JavaBean或EJB构成,视图是由Jsp页面组成,控制器是由ActionServlet和Action实现,图2.1展示了MVC框架的基本结构。图2.1 Struts的工作原理图3.3.1.2 Hibernate技术Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思想来操纵数据库。Hibernate的工作原理是通过文件(一般有两种:xml文件和properties文件)把值对象和数据库表之间建立起一个映射关系。这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为编码工作节约了大量的时间。Hibernate提供的HQL是一种类SQL语言,它和EJBQL一样都是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL.图2.2展示了Hibernate的工作原理。图2.2 Hibernate工作原理图3.3.1.3 Spring技术Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。它由两个大的模块组成:Spring 面向方面编程(AOP)和控制反转 (IOC) 容器。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。图2.3 Spring框架架构图组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: · 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 · Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 · Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。· Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。· Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 · Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 · Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。 l IOC 容器Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean 组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。BeanFactory 也可以管理对象之间的关系。BeanFactory 支持两个对象模型。· 单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。 · 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。 bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架。正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。l BeanFactory 接口因为 org.sprin