SSH架构详解.ppt
《SSH架构详解.ppt》由会员分享,可在线阅读,更多相关《SSH架构详解.ppt(26页珍藏版)》请在冰点文库上搜索。
1,轻量级JavaEE应用MVC设计模式下SSH(Struts+Spring+Hibernate)架构,小组成员:
周盛,范鹏飞,曹瑾怡,班级:
计研1101班,1,2,大纲(outline),JavaEE技术概述JavaEE应用介绍JavaEE应用的分层模型JavaEE应用的组件MVC(ModelViewController)设计模式Model1模型Model2模型MVC设计思想SSH(Struts+Spring+Hibernate)架构概述Struts技术概述spring技术概述Hibernate技术概述SSH框架(Struts、Spring、Hibernate)的整合基于SSH框架的设计开发实例分析SSH(Struts+Spring+Hibernate)的优缺点SSH框架的应用与展望,2,3,JavaEE应用介绍,J2EE,即JAVA2企业版,是美国SUN公司为了开发具有高可用性、安全性、易维护性的企业级应用所提出的一整套技术规范。
JavaEE平台在企业级开发中占有很大的优势,JavaEE应用以其稳定的性能、良好的开放性及严格的安全性,深受企业及应用开发者的喜爱。
JavaEE应用提供的跨平台性、开放性及各种远程访问的技术,为异构系统的良好整合提供了保证。
3,4,JavaEE应用的分层模型,框架(Framework):
框架是整个系统或系统的一部分的可重用设计,由一组抽象的类及其实例间的相互作用方式组成。
基于J2EE四层架构应用模型同传统的C/S模型相比,提高了系统的可扩展性、安全性和可重用性。
4,5,JavaEE应用的分层模型,J2EE四层架构将应用逻辑与用户界面和数据访问相剥离,这样便使系统的维护变得简单,同时可以通过采用组件技术,降低数据库服务器的负担,从而提高系统的性能。
图1J2EE四层架构示意图,5,6,JavaEE应用的组件,表现层组件:
JSP、Velocity和FreeMarker等。
控制器组件:
控制器负责拦截用户请求,并将请求转发给用户实现的控制器组件。
业务逻辑组件:
系统的核心组件,实现系统的业务逻辑。
DAO组件:
DataAccessObject,也被称为数据访问对象。
领域对象组件:
领域对象(DomainObject)抽象了系统的对象模型。
6,7,MVC设计模式概述,SSH(Struts+Spring+Hibernate)架构:
作为一种轻量级的JavaEE平台,也是基于MVC设计模式的。
Model1:
以JSP为中心,表示逻辑与业务处理混合在JSP中。
Model2:
基于MVC(ModelViewController)模式MVC设计思想:
即由模型、视图、控制器三种部件组成。
7,8,Model1模型,以JSP为中心的开发模型称之为Model1,图2Model1架构图,8,9,Model2模型,基于MVC模式的框架模型的Model2,图3Model2架构图,9,10,MVC设计思想,MVC(ModelViewController),即由模型、视图、控制器三种部件组成。
图4MVC部件类型的关系和功能,10,11,struts2技术概述,Struts是全世界最早的MVC框架,从诞生起,就备受JavaEE应用开发者的青睐。
Struts分为:
struts1框架老化,很多设计上的硬伤使得该框架难以胜任更复杂的需求。
struts2吸收了传统Struts和WebWork两者的精华,迅速成为MVC框架中新的主流框架。
11,12,struts2技术概述,Struts2.0框架的体系结构在响应客户请求时,各个部分工作的原理如图所示。
图5Struts2工作原理,12,13,Spring技术概述,Spring是一个解决了许多J2EE开发中常见问题并能够替代EJB技术的强大的轻量级框架。
Spring框架的核心是控制翻转IoC(InversionofControl)依赖注入DI(DependenceInjection)机制。
Spring框架的结构如图所示。
图6Spring框架结构图,13,14,Hibernate技术概述,Hibernate是目前最为流行的ORM(对象关系映射)框架。
ORM也称为对象关系映射,是面向对象语言的对象持久化技术。
有了ORM框架,在关系型数据库和Java对象之间进行自动映射,就使得程序员可以非常简单的方式实现对数据库的操作。
图7Hibernate基本架构图,14,15,SSH框架(Struts、Spring、Hibernate)的整合,Struts框架有成熟的标签库,所以Web层主要由struts框架实现;Spring框架同Struts框架能够完美的结合,并且在事务管理和依赖注入方面有着独到之处,因此主要用于业务逻辑层;在数据持久层方面主要采用Hibernate,实现ORM,对JDBC进行了轻量级的对象封装,建立Java对象模型的持久化对象。
15,16,SSH框架(Struts、Spring、Hibernate)的整合,根据上面的分析,集成Struts,Spring,Hibernate的架构的总体结构如下图所示:
16,17,图8SSH架构总体结构,17,18,基于SSH框架的设计开发实例分析,这里,我们以远程教育系统中的实时答疑后台开设的开发过程为实例进行SSH架构整合说明,实例图如下所示。
18,19,图9实时答疑室的后台管理,19,20,基于SSH框架的设计开发实例分析,表示层组件:
*.ftl、OnlineQuesRoomAction、Struts.xml业务层组件:
IOnlineQuesRoomServ、OnlineQuesRoomServImpl,通过applicationContext-services.xml文件实现依赖注入机制持久层组件:
IOnlineQuesRoomDao、OnlineQuesRoomDaoImpl,通过applicationContext-dao.xml文件实现依赖注入机制,20,21,Struts的优点,优点:
1、提高软件的设计效率,严格基于MVC,是软件结构清晰、易维护、易扩展,使开发者只关注业务逻辑的实现;2、Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。
使开发者能更深入的了解其内部实现机制;3、Taglib:
Taglib是Struts的标记库,灵活动用,能大大提高开发效率。
另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
4、页面导航:
将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。
通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。
尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
5、其他的功能:
数据校验和软件国际化等。
21,22,Struts的缺点,缺点:
1、Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯;2、Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度;3、层面太多,做小应用不适合,远不如jsp+JavaBean的方式简洁快速;,22,23,Spring优缺点,优点:
1.令人称赞的是IOC、AOP和数据库事务的自动管理,集成对各种其他框架的良好支持。
2.配置过程中高度动态化,低耦合和低侵入性,在应用中起一个小型容器(container)的作用。
3.可以管理在容器中的框架、Servlet、bean,管理他们的生命周期和内存分配,具“一站式架构”的特点。
缺点:
1.配置文件众多、繁杂,对框架的依赖程度过高。
23,24,Hibernate优缺点,优点:
1、提高开发效率,节省编码时间;2、Hibernate使用Java反射机制而不是字节码增强程序来实现透明性;3、Hibernate的性能非常好,因为它是个轻量级框架,映射的灵活性很出色;4、提供了很多功能性的特点;缺点:
1、配置太灵活,使编程人员需要考虑的事项很多;2、Hibernate做为ORM有一些固有的缺陷,比如批量Insert、Update和Delete的效率问题;3.直接从xml文件里面读取数据库联接参数,这样就无法给数据库密码加密;4.由于使用了映射文件,处理多态检索复杂;,24,25,SSH框架应用与展望,对于信息化要求较高的行业,如银行、电信、证券及电子商务等行业,都不约而同地选择了JavaEE开发平台。
目前,已有许多成熟的项目成功使用了基于轻量级的J2EE框架SSH框架进行开发,诸如网上银行系统、远程教育系统、基于B/S的信息管理系统等等。
这三种开源框架的结合,极大的提高了J2EE企业级应用系统的开发效率,同时也提高了系统的可扩展性和维护升级的方便性。
由于这三种开源框架本身还处于发展的阶段,框架的版本和相关文档也在不断的升级,开源框架开发的爱好者和专家们也在网上的相关主题论坛上不断的讨论框架的应用和改进,使得这些技术不断的被完善,值得我们去进一步研究。
25,26,Thanks,26,