《2022年毕业论文 .pdf》由会员分享,可在线阅读,更多相关《2022年毕业论文 .pdf(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于 SSH电子商城的课程设计课 程 名 称基于 SSH 电子商城课 程 代 码题目基于 SSH 电子商城年级 / 专业 /班学生学号指 导 老 师开 题 时 间年月日完 成 时 间年月日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 38 页摘要电子商务是利用电子信息技术和网络技术进行商务活动的一种先进手段。随着网络经济的迅猛发展,电子商务作为网络化的新型经济活动,逐渐成为主要发达国家增强综合竞争实力,赢得全球资源配置优势的有效手段。电脑和网络技术的应用推进了信息社会的进程,而电子商务则造就了全新的经济运行方式,将给社会经济带来重大的
2、变革。电子商务为中小型企业的经营和管理打开新的局面。网络购物作为电子商务一个重要的应用,在新的贸易经济体制中占据了重要的位置,对未来的电子商务的发展发挥着主导作用,越来越受到人们的重视。首先,本文简述了电子商务,尤其是网络购物发展现状,并根据一小型服装企业实际需求提出了构建基于SSH(Struts+Spring+Hibernate)整合框架的电子商务系统的项目计划。其次,深入研究了轻量级Java EE 应用体系结构。对所选框架分别进行分析和研究。Struts是一个实现了MVC 模式的经典的框架;Hibernate是轻量级Java EE应用的持久层解决方案,以面向对象的方式提供了持久化类到数据表
3、之间的映射,是优秀的ORM 框架; Spring为企业应用提供了轻量级的解决方案:它的 Ioc 容器, AOP思想,以它为核心,整合持久层框架和Web MVC 框架。通过三个框架的整合,可以构建可扩展、可复用、可移植、可维护的软件系统! 最后,在此基础上,严格按照软件开发标准设计本电子商务系统,对系统进行详细的需求分析、体系架构设计、概要设计及详细设计。最终实现了一个网上购物系统,系统分为前台和后台,前台主要功能包括注册和登录、商品浏览、个人信息管理、购物车、我的订单和网上支付,后台主要功能包括管理员信息管理、用户信息管理、商品管理、商品分类管理、订单管理。通过实践,很好的整合了这三个框架,并
4、将其应用到实际的项目中,到达了预期效果,表达了较高的研究价值和应用价值。此外,本电子商务系统的成功的研发,不仅为中小型企业未来的运营模式提供一个示范,而且值得更多的传统企业关注和借鉴。关键词: 电子商务, Struts,Hibernate,Spring ,Java EE ,框架Abstract E-commerce is an advanced business activity through electronic information technology and network technology With the swift development of cybereconomy,
5、E-commerce,as a brand-new new network economic activity which is becoming all effective means of enhancing comprehensive competitive edge and gaining the advantage of global resource allocation for the major developed countries Calculator with technical application in network propulsion social progr
6、ess in information,but the electronic commerce then educated the all new economy the movement the method,will bring the social economy graveness replaceE-commerce opens up a new situation for the management and administrmion of the small and medium enterprises Online shopping,as part of e。commerce,i
7、s very important in this new trade economic system ,will display the leading role to the future electronic commerce development ,mote and more to be valuedThis paper first gives a brief introduction on e-commerce,focusing on the current status and trends of online shopping in particular An e-commerc
8、e system project proposal for a small garment enterprise ,based on all integrated SSH(Struts+Spring+Hibemate)framework , is also providedThe proposal is followed by an in-depth study Oil the lightweight Java EE application architecture Struts is a classical framework which implements the MVC modelHi
9、bernate is a lightweight Java persistence framework ,it performs powerful object relational mapping from persistence classes to database tables Spring framework has all IoC container and provides Aspect-oriented programming,and it is the core in integrating with the persistence framework and the Web
10、 MVC frameworkThrough integrating the three frameworks ,a scalable,reusable,easy to migrate and easy to maintain software system Can be built The last part of this paper is a detailed design document of the e-commerce system The document follows strictly the development specifications , which includ
11、es detailed requirement analysis , system architecture design,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 38 页a summarised design and a detailed designFinally,this paper implements an online shopping system ,which divides into the onstage and the backstageThe onstage includes the main funct
12、ion of registration and logiIl,the view of products ,personal information management ,the shopping cart,my order form and the net pays The backstage includes the main function of administrators information management,users information management,commodity management ,classification of goods manageme
13、nt ,order management and announcement-information management The three frameworks are well integrated through practice , and expected effects are achieved in applying them on real projects The overall results are satisfactory In addition ,the SUCCESS of e,-commerce system research and development, n
14、ot only proffers a show-how for the future operating model of the small and medium enterprises ,also is worth noticing and learning by more and more traditional enterprises Keywords : E-commerce,Struts,Hibernate,Spring,Java EE,framework 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 38 页目录目录 .
15、 3前言 . 4第 1 章 系统需求分析. 51.1 系统设计目的 . 51.2 系统需求 . 51.2.1 功能需求 . 51.2.2 性能需求 . 61.3 运行环境 . 61.3.1 硬件环境 . 61.3.2 软件环境 . 7第 2 章 系统设计 . 7. 72.1.1 模型 (Model) . 72.1.2 视图 (View) . 72.1.3 控制器 (Controller) . 7. 82.2.1Struts2 框架 :. 82.2.2Hibernate 框架 : . 10 2.2.3Spring 框架 : . 12 Struts 、Hibernate和 Spring 的整合 .
16、 14 . 14 . 15 2.3.3Struts2、Hibernate 和 Spring 的整合开发 . 16 . 16 . 16 . 17 第 3 章 功能实现 . 19 . 19 . 19 . 24 . 33 3.2.1 后台页面效果图: . 33 3.2.2 后台主要实现代码: . 35 第 4 章 结束语 . 36 . 36 . 36 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 38 页前言21 世纪是信息的世界,随着信息化的浪潮席卷全球,传统的商务模式受到巨大的冲击。越来越多的企业和个人消费者,在Internet 开放的
17、网络环境下,一种基于浏览器- 服务器应用模式,实现消费者网上购物,商户之间的网上交易和在线电子支付的新型的商业运营模式-电子商务应运而生。目前做得比较成功的电子商务平台,国内有:当当网,阿里巴巴,淘宝,京东商城,慧聪网等,国外有:亚马逊,eBuy 等。电子商务在中国也发展了一段时间,目前在国内也有很多电子商务的平台,通过分析国内的电子商务网站可知,目前国内的电子商务做的都是集合型,一个平台中各个方面的商务领域似乎都有涉及到。像比较有名的一些网购平台,如:八点优网,邮乐网,京东商城,易百,淘宝网,拍拍网,红孩网等电子商务网站,涉及的门类都很多,而且他们都有一个共通的特点就是只有产品的展示与订购,
18、很少有厂家企业的介绍。目前中国能用上电子商务平台的都是一些大中型的企业,而大部分的中小型,特别是小型企业还是用着以前的生意模式,靠朋友,靠关系,靠老客户来维持企业,这种模式在过去的时代会有一定的优势,但在信息网络时代这种模式缺乏主动性,往往会使企业处在被动的状态。像阿里巴巴这样的大型电子商务平台是能很好地帮助企业做宣传,联系客户,但是阿里巴巴基本上是面对大中型的企业,每年的管理费用都非常高,对于一些中小企业要承受一笔高的资金是很困难的。为了能够上中小型企业特别是小型企业能够用上电子商务平台,我们特地开发此系统,使中小型企业也能做到生产,宣传,销售一条龙。本系统采用SSH(Struts,Spri
19、ng,Hibernate) 框架来开发。 SSH 框架是目前J2EE 领域里最热门而且用得较为成熟的一套开源框架,它是基于MVC 设计模式之上,在充分发挥MVC 设计模式优点的同时,也创造出了自己的开发特点,降低了应用程序的耦合性,更进一步提高了应用程序的复用性、移植性、灵活性、扩展性和应用性能。SSH 是一套轻量级的开发框架,相对于 EJB 重量级开发框架,SSH 在继承了它的优点的同时, 在开发和执行效率上都有了相当程度的提高,同时对于开发者而言,它比 EJB 更容易学习和撑握,开发速度也更快。目前Struts 和 Spring 发展到 2.0 版本, Hibernate 发展到 3.0
20、版本, SSH 框架也正在不断地进行优化和升级,运行也越来越稳定。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 38 页第1章 系统需求分析1.1 系统设计目的本系统设计目的旨在建立一个以SSH 框架为基础, 结构灵活、 可复用、可扩展,开发快速且轻量的电子商务应用平台。系统框架和企业网站子系统为本人设计的主要目标,能够根据业务需求变化可以灵活操作系统功能模块,根据企业变化能够自由添加、修改、删除企业网站子系统是实现以上目标的关键。1.2 系统需求1.2.1 功能需求网站前台功能1)首页:为企业提供一个网站首页,在上面显示网站的重要信
21、息包括企业LOGO, 用户的登录 ,用户的注册 ,一级分类显示,最新商品及热门商品显示等。2)用户的注册: 主要针对未注册的用户,完成注册功能使用,在注册过程中,需要进行数据的前台非空校验,及使用 AJAX 完成用户名是否存在的异步校验。在校验通过后即可完成注册,在后台同样需要进行数据校验及发送一封激活邮件。3)用户的激活:已经注册的用户,需要进入邮箱点击激活链接进行用户的激活。4)用户的登录:已经注册的用户,并且该用户已经激活的情况下,输入用户名和密码即可激活用户。5)用户的退出:针对已经登录的用户,退出该系统使用。6)首页商品展示:显示最新商品及热门商品。方便用户了解最新以及最热门商品。7
22、)分类页面商品展示:根据某个分类的信息去展示商品。可以方便用户查找相应分类商品。8)商品详情展示:点击某个具体商品的时候,可以显示商品的详情。以便用户可以方便的了解商品的具体信息。9)购物车:此功能为用户提供购物功能,用户可以根据自己需要,将自己喜欢的商品添加到购物车,也可以从购物车中移除商品,甚至清空购物车中的所有商品。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 38 页10)订单:登录用户可以将自己喜欢商品进行购买,产生订单。可以对自己产生的订单进行在线的付款。以及可以根据用户信息,查询自己的订单。网站后台功能1)管理员登录:管
23、理员根据用户名和密码完成登录功能。2)一级分类管理:管理员可以对前台显示的一级分类进行管理包括添加,修改,删除,查询的功能操作。3)二级分类管理:管理员可以对前台显示的二级分类进行管理包括添加,修改,删除,查询的功能操作。4)商品管理:管理员可以对前台上显示的商品进行管理包括添加,修改,删除,查询的功能操作同时要可以上传商品的图片。5)订单管理:管理员可以对所有的用户产生的订单进行管理包括未付款的,已经付款的,已经发货的,交易完成的订单。可以修改订单状态及异步加载订单项。6)用户管理:管理员可以对注册过的用户进行管理包括修改用户信息,删除用户,查询用户。1.2.2 性能需求响应时间与内存使用量
24、:忽略网络环境因素、主题模板及功能插件运作的因素,以本地测试为准。数据库安装响应:时间2秒内, 内存使用量最高上限8,000,000 bytes。前台浏览响应时间: 时间 0.8 秒, 内存使用量最高上限9,000,000 bytes。 后台操作响应时间:时间0.9 秒,内存使用量最高上限9,000,000 bytes。安全性:后台的界面访问、路径访问、操作执行的前后,均受登陆会话管理和用户权限管理的控制。1.3 运行环境1.3.1 硬件环境a)服务器端 : 服务器端的最低配置是由建立站点所需的软件来决定的,本网络系统服务器端的最低配置如下:处理器: Inter PentiumCeleron
25、4 2.4GHz 或更高。内存: 2G 硬盘空间: 160G 显卡: SVGA 显示适配器精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 38 页b)客户端 : 因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此需要的配置应该高于下面的配置:处理器: Inter PentiumCeleron 4 1.6GHz 或更高。内存: 512MB 硬盘空间: 160GB 显卡: SVGA 显示适配器1.3.2 软件环境a)服务器端 : 操作系统: Windows NT/2000/2003 网站服务器:
26、Tomcat7.x + jdk7.x 数据库管理系统:MySQL5.x b)用户端 : 操作系统: Windows NT/2000/2003/XP professional/Windows Seven 第2章系统设计MVC 是一种将应用程序的逻辑层和表现层进行别离的方法。MVC 式的出现不仅实现了功能模块和显示模块的别离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。2.1.1 模型(Model) 模型是应用程序的主体部分。模型表示业务数据。通常来说,你的模型类将包含取出、插入、更新、删除你的数据库信息的功能。2.1.2 视图(View) 视图是应用程序中用户界面相关的
27、部分,是用户看到并与之交互的界面。一个视图通常是一个网页,但是在CI 中,一个视图也可以是一个页面片段,如页头、页尾。2.1.3 控制器 (Controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model 对象状态。是模型、视图以及其它任何处理请求所必须的资源之间的中介,并生成网页。由于运用MVC 的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松耦合的构件。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 38 页本系统是在MVC 模式基础上来进行分层,由于本系统
28、开发的工具是MyEclipse, 在建立工程时开发工具就已经初步把系统分成MVC 三层结构。模型层由Models 层来充当,该层主要是用来存实体Bean 类和Hibernate 影射文件。通过该层开发者很方便地对整个工程下的Bean 进行管理,同时也非常方便地对Hibernate 配置文件进行影射,极大的提高了开发的效率,同时对以后系统的维护也非常方便。V 层在本系统中主要是用来数据展示,本系统中V 层主要是采用JSP技术。 通过 JSP技术可以很方便地把数据展示在web 浏览器上。在JSP技术基础上,对其进行了改良,把html 语言和 java 语言进行别离,这样既到达了解耦的目的,也使后续
29、系统的维护变得很方便。把流程控制都放到Action 层,把业务逻辑处理放在 service 层中, 充分利用Struts2 技术,在 html 页面中使用Struts2 标签来展示数据,尽量减少在html页面上写java 语句。C 层主要是用来做流程和逻辑控制,也是整个系统的核心层。所有进出系统的访问都要经过这一层的控制。本系统对C 层时行了一些改良,我们把控制层又细分为Action 层, service 层和 Dao 层。 Action 层只管流程控制, Service 层只管逻辑控制,Dao 层只管与数据打交道,各施其职, 每个层次只管自己的事情,这样能使整个系统的层次非常分明,不会出现功
30、能的混淆。让开发者和维护者在编写代码的时候非常清晰。MVC 模型优点显然, 但在实际开发过程中个人对采用MVC 模式有一点点看法。马克思主义哲学告诉我们,任何事物都有它的局限性,MVC 也不例外。 MVC 不是万能药,它并不能医治所有的疾病,作为一名医术高超的医生应该要能对症下药。MVC 强制性地将业务逻辑层和表现层分开,在一定程度上是能很好地松耦合,但这种做法是会带来开发和运行的开销的。首先MVC 采用多分层结构,这样就给开发带来了难度,增加了开发的时间,并且如果在层次设计的时候设计得不好,反而会降低程序运行的效率。另外多层次结构在运行的时间没有单层次结构的程序运行的速度快,采用MVC 模式
31、如果分层太多,是会降低程序运行速度。孔子告诉我们要因材施教,我们做开发的也要因物施用,大炮有大炮的威力,小步枪有小步枪的灵活, 并不是说所有的系统都要采用MVC 模式来开发。 MVC 模式它提出来的初衷就是为大型软件设计而提出的,它对那些需要经常复用,扩展的大型软件是非常有好处,但对于那些复用性,扩展性很少的小软件,特别是对于开发时间要求比较紧的情况下,采用MVC 模式,其实不是一种明智的选择。SSH分析SSH 即 Struts+Spring+Hibernate, 是典型的J2EE 三层结构, 分为表现层、 中间层和数据访问层。三层体系将数据表现、业务逻辑和数据访问分开。业务逻辑、数据访问、权
32、限拦截及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库打交道。Struts2框架: Struts2体系结构Struts2 是一个具有很好实用价值的Web MVC 框架,它减少了直接运用MVC 模式来开发Web 应用的周期。重要的是它是一个开源框架,方便开发者深入研究了解其机制,越来越广泛的接受和应用。而且它提供一个好的控制器和一套定制的标签库Taglib ,着力在控制器和视图上的应用,完美的表达了MVC 设计思想。提供集中统一的权限控制、国际化提示和消息、输入校验和日志记录等技术支持。另外,它对其他技术和框架具有良好的融合性。如能与E
33、JB、JDBC 和 Hibernate 等数据库访问技术相结合,利用集成技术减少数据库的工作量。Struts2 的体系结构如下图: 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 38 页Struts2 核心实现 : Struts2 主要是用来控制整个系统流程。它由三个部分组成,核心控制器FilterDispatcher 、业务控制器和用户实现的业务逻辑组件。本系统采用的核心控制器为2.3.15.3 版本,该控制器作为一个Filter 运行在Web 应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter 会过滤用户请求。如果
34、用户请求以 action 结尾,该请求将被转入Struts 2 框架处理。 Struts 2 框架获得了 *.action 请求后,将根据*.action 请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action 请求, Struts 2 调用名为login 的 Action来处理该请求。 struts2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 38 页 struts2 /* 拦截器也是本系统中使用的一个Struts2 重要组件功能, 该组件功能提供一个事件拦截的方法,让你可以对某些动作进行拦截。例如本系统对
35、所有后台操作都有一个检查是否登录的功能,如果没有登录则对其操作进行拦截。public class PrivilegeInterceptor extends MethodFilterInterceptor Override protected String doIntercept(ActionInvocation actionInvocation) throws Exception / 获得 Session中存的后台的用户: AdminUser adminExistUser = (AdminUser) ServletActionContext .getRequest().getSession()
36、.getAttribute(adminExistUser); if(adminExistUser = null) / 没有登录 : ActionSupport support = (ActionSupport) actionInvocation.getAction(); support.addActionError(您还没有登录 ! 请先去登录 !); return support.LOGIN; else / 已经登录return actionInvocation.invoke(); 2.2.2Hibernate 框架: ORM(对象关系数据库映射) 对象关系映射(Object Relatio
37、nal Mapping ,简称 ORM) 是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。它完成了面向对象的编程语言到关系型数据库的映射。ORM 框架可以看成应用程序和数据库之间的桥梁,通过它,我们可以以面向对象的方式建模、操作,易用、易理解,同时也可以利用关系型数据库系统对数据库访问操作的一些优势。以面向对象的方式操作持久化对象,而ORM 框架负责转换成对应的SQL(结构化查询语言)操作。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 38 页Hibernate概述Hibernate 是轻量级Java EE 应用的持久
38、层解决方案,是流行的ORM 框架,它对JDBC 进行了非常轻量级的对象封装,使得Java程序员可以面向对象的方式来操纵数据库。Hibernate 不仅管理Java类到数据库表的映射,还提供数据查询和获取数据的操作,可以减少人工使用SQL 和 JDBC 处理数据的时间。Hibernate体系结构Hibernate 实际上是一个提供数据库服务的中间件。Hibernate 的持久化解决方案将用户从繁琐的JDBC访问中解脱出来,底层数据库连接获取,数据访问的实现、事务控制都无须用户关心,这种体系结构,将应用层从底层的JDBCJTA API 中抽象出来。 Hibernate 体系结构如图 (注:该图来自
39、于Hibernate 官方参考文档 )所示。Hibernate 有 5 个核心的接口、类,如下:(1)SessionFactory 接口:它是单个数据库映射关系经过编译后的内存镜像。所以,SessionFactory 的初始化过程比较复杂,同时也消耗大量的资源。为了解决这个问题,Hibernate 的设计人员对Hibernate 采用了线程安全可以并发调用,实现 SessionFactory 的实例, 多个线程可以并发调用,实现 Hibernate 实例共享。此外,它还是生成Session的工厂。(2)Session 接口:应用程序与持久储存层之间交互操作的一个单线程对象。Session接口对
40、象实例中提供了持久化操作相关的“增、删、查、改(CRUD) 方面的操作。所有的持久化操作都是在Session的基础上完成的。通常将每一个Session对象实例和一个数据库事务绑定。(3)事务 Transaction 接口:通过Transaction 接口来到达允许应用系统通过一组一致的事务API 来控制事务边界,从而可以封装系统底层的事务操作和访问的接口。将应用系统中涉及事务功能实现代码从底层的事务具体实现的技术细节中抽象出来,最终可以到达应用系统在不同的运行环境平台和Java EE 容器之间方便的移植。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -
41、第 12 页,共 38 页(4)Query 接口: Query 接口能让开发者方便的对数据库表中的数据及与之对应的持久化对象进行查询操作,利用它可以以面向对象的方式来实现对数据库的各种查询操作。(5)Configuration :通过 Configuration 获取目前的配置(如数据源、数据库的URL 、连接用户名及密码、数据库方言等)并将这些配置加载到内存中,并预启动Hibernate 框架,最终到达创建SessionFactory 对象的目的。2.2.3Spring 框架: Spring 框架介绍 : Spring 是从实际开发中抽取出来的开源框架,为企业的开发提供一个轻量级的解决方案。
42、该解决方案包括:基于Ioc(控制反转 )的核心机制,以及AOP(面向切面编程)的思想,能与多种持久层技术的整合,是优秀的 Web MVC 框架等。 Spring 致力于 Java EE 应用各层的解决方案而不是仅仅专注于某一层的方案,它贯穿表现层、业务层、持久层,降低各层组件的耦合度,实现软件各层的解耦. 轻量级划分一个应用是否属于轻量级还是重量级,主要看它使用了多少服务,使用的服务越多,容器要为普通 java 对象做的工作就越多,必然会影响到应用的发布时间或者是运行性能。对于 Spring 容器, 它提供了很多服务,但这些服务默认是关闭的,应用对需要的服务可以现用现拿。而且,Spring 是
43、无侵入性的可扩展框架, Spring 应用中的对象不依赖Spring 具体的类。Ioc(控制反转 ) 所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。AOP( 面向切面编程) AOP(Aspect Orient Programming) ,即面向方面编程。 AOP 技术给人们提供了一个崭新的视角分析和设计软件系统。 AOP 引入了别离关注点形成模块化的机制来解决横切关注点的问题。所谓的关注点指的是一个特定的概念、目标或可实现域。系统正是由一组关注点组成,典型的软件系统由多个系统级关注点和
44、核心级关注点组成。核心关注点指业务处理的主要过程,而系统级关注点是与核心业务无关,一般横切多个核心关注点,为这些核心关注点提供服务,如日志记录,安全检测、事务处理等。AOP 和 OOP 互为补充,从两种不同的角度去认识事物。传统的 OOP4lJ 编程是以对象为核心,系统由一系列相互依赖的对象组成,抽象的封装好这些对象的属性和行为,使得这些对象可以相互协作的完成特定的业务逻辑,从而完成一个完整的应用系统。但随着软件系统的不断扩大,系列化分工越来越细,对跨越多个模块的行为进行建模是,OOP 暴露出了一些无法很好解决的问题。OOP 的核心是采用的纵向结构去完成业务逻辑(也可理解为关注点),很多不同模
45、块可能具有相同的关注点(横切关注点 ),OOP 处理起来较为繁琐,模块间的耦合度大,后期维护和扩展比较困难。AOP 的核心是允许我们独立的完成一个个关注点,然后以一种松耦合的方式把这些单独的关注点编织成一个完整的系统,形成了一种模块化横切关注点的方式。与OOP 相对, AOP 采用的是横向结构,例如,多个模块具有某个相同操作,这个操作就可以视为系统中的一个“横切关注点”。简单地说, AOP 就是将那些与业务无关,却为业务处理模块共同服务的诸如并发访问控制的一些系统关注点(通用的功能需求),从不相关的的类之间别离出来,在某个地方集中编写,组织和维护,并可以通过如精选学习资料 - - - - -
46、- - - - 名师归纳总结 - - - - - - -第 13 页,共 38 页AspectJ 等工具将它们织入到系统出供业务对象使用。这是系统建模中抽象层次的进一步提升,可以得到结构清晰、模块化强、代码问耦合度低、易于重用和维护的系统。Spring 体系结构Spring 框架由 7个定义良好的模块(组件 )组成,各个模块可以独立存在,也可以联合使用。(1)Spring Core :核心容器提供了Spring 的基本功能。核心容器的核心功能是用Ioc 容器来管理类的依赖关系 Spring 采用的模式是调用者不理会被调用者的实例的创建,由Spring 容器负责被调用者实例的创建和维护,需要时注
47、入给调用者。这是目前最优秀的解耦模式。(2)Spring AOP : Spring 的 AOP 模块提供了面向切面编程的支持。SpringAOP 采用的是纯Java实现。Spring AOP 采用基于代理的AOP 实现方案, AOP 代理由 Ioc 容器负责生成、管理,依赖关系也一并由Ioc容器管理,尽管如此,Spring Ioc 容器并不依赖于AOP,这样我们可以自由选择是否使用AOP。(3)Spring ORM :提供了与多个第三方持久层框架的良好整合。(4)Spring DAO : Spring 进一步简化DAO 开发步骤, 能以一致的方式使用数据库访问技术,用统一的方式调用事务管理,防
48、止具体的实现侵入业务逻辑层的代码中。(5)Spring Context :它是一个配置文件,为Spring 提供上下文信息,提供了框架式的对象访问方法。Context 为 Spring 提供了一些服务支持,如对国际化(i18n)、电子邮件、校验和调度功能。(6)Spring Web :提供了基础的针对Web 开发的集成特性,例如多方文件上传,利用Servlet listeners进行 IoC 容器初始化和针对Web 的 applicationContext. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 38 页(7)Spring
49、MVC : 提供了 Web 应用的 MVC 实现。Spring 的 MVC 框架并不是仅仅提供一种传统的实现,它提供了一种清晰的别离模型,在领域模型代码和web form 之间。并且,还可以借助Spring 框架的其他特性。Struts 、Hibernate和 Spring的整合本章的前部分,我们已经了解了轻量级JAVA EE 分层的设计模式,在Java界多种优秀框架在对应层找到了自己的位置。如表示层有:Struts、WebWork 、Velocity 、JSF、Tapestry 等。持久层有:Hibernate、Entity EJB 、iBATIS 、TopLink 、OJB 等;将各层的开
50、源框架有机的整合在一起作为软件系统的主体架构,使得系统具各高度的可扩展性、可维护性。在各种整合的方案中,struts+hibernate+spring 已成为 JAVAEE应用开发的主流体系。Spring 以其开放性,能与大部分ORM 框架良好的整合这样Spring 就能轻松地使用ORM 。Spring 提供了 DAO 支持, DA0 组件是应用的持久层访问的重要组件,我们把主要精力集中在数据的管理口上。此外, Spring 还提供了一致的异常抽象,不需要在编码时显示的捕获各种特定的异常。通过 Bibernate 进行数据持久层操作时,Hibernate 的 Session接口提供了基本的数据