SSH框架入门项目---(1)三大框架简析

  什么是SSH?

   SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。


   系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

   采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率

   1.struts2是什么?

   在介绍struts2前,我们可以先认识一下struts1.struts1是最早的基于MVC模式的轻量级WEB框架,它能够合理地划分代码结构,并包含验证框架﹑国际化框架等多种实用工具框架。但是随着技术的进步,struts1的局限性也越来越多地暴露出来。为了符合更加灵活﹑高效的开发的需求,struts2框架应运而生。

   struts2是struts1的下一代产品,是在struts1和webwork技术基础上进行合并后的全新框架(webwork是由OpenSymphony组织开发的饿,致力于组建化和代码重用的J2EE Web框架,它也是一个MVC框架)。虽然Struts2与Struts1名字相似,但其设计思想却有很大的不同。实质上,Struts2是以webwork为核心的,它采用拦截器的机制来处理用户的请求。这样的设计也使得业务逻辑控制其能够与servlet API完全脱离开来,所以Struts2可以理解为webwork的更新产品。

   其优势具体如下:

·项目开源,使用及拓展方便。

·提供Exception处理机制。

·Result方式的页面导航,通过Result标签很方便地实现重定向和页面跳转。

·通过简单﹑集中的配置来调度业务类,使得配置和修改都非常容易。

·提供简单﹑统一的表达语言来访问所有可供访问的数据。

·提供标准强大的验证框架和国际化框架。

·提供强大的﹑可以有效减少页面代码的标签。

·提供良好的ajax支持。

·拥有简单的插件,只需要放入相应的JAR包,任何人都可以扩展Struts2框架,例如自定义拦截器﹑自定义结果类型﹑自定义标签等,为Struts2定制需要的功能,不需要什么特殊配置,并且可以发布给他人使用。

·拥有智能的默认设置,不需要另外进行繁琐的设置。使用默认设置就可以完成大多数项目程序并开发所以需要的功能。


2.初识Hibernate

使用传统的JDBC开发应用系统时,如果是小型应用系统,并不觉得有什么麻烦,但是对于大型应用系统的开发,使用JDBC就会显得力不从心。例如对几十张﹑几百张包含几十个字段的表进行插入操作时,编写的SQL语句不但很长而且很繁琐,容易出错;在读取数据时,需要写多条getXxx语句从结果集中取出各个字段的信息,工作量非常大。为了提高数据访问层的编写效率,Gavin King开发了一个当今最流行的ORM框架,它就是Hibernate框架。

 所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象,持久化到关系型数据库的表中。通过操作java对象,就可以完成对数据库的操作。可以把ORM理解为关系型数据和对象的一个纽带,开发人员之需要关注纽带一端的映射对象即可。

其优势具体如下:

·Hibernate对JDBC访问数据库的代码做了轻量级封装,大大简化了数据访问层繁琐的重复性代码,并且减少了内存的消耗,加快了运行效率。

·Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它很大程度地简化了DAO(Data Access Object,数据访问对象)层的编码工作。

·Hibernate使用java的反射机制,而不是使用字节码增强程序类并实现透明性。

·Hibernate的性能非常好,映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系。

·可扩展性强,由于源代码的开源以及API的开放,当本身功能不够用时,可以自动编码进行扩展。


3.Spring基本知识

Spring是分层的JAVASE/EE full-stack轻量级开源框架,以及IoC(Inverse of Control控制反转)和AOP(Aspect Oriented Programming面向切面编程)为内核,使用基本的JAVABEAN来完成以前只可能由EJB完成的工作,取代了EJB的臃肿低效的开发模式。

在实际开发中,通常服务器采用三层体系架构,分别表示为(web)﹑业务逻辑层()service﹑持久层(dao)。Spring对每一层都提供了技术支持,在表示层提供了与struts2框架的整合,在业务逻辑上管理事物,记录日志等,在持久层可以整合Hibernate﹑JdbcTemplate等技术,从设计上看,给予了java程序员许多的自由度,对业界的常见问题也提供了很好的解决方案。

 其优势具体如下:

·方便解耦﹑简化开发

Spring就是一个大工厂,可以将所有的对象创建和依赖关系维护交给Spring管理。

·AOP编程的支持

Spring提供面向切面编程,可以方便地实现对程序进行拦截﹑运行监控等功能。

·声明式事物的支持

只需要通过配置就可以完成对事物的管理,而无需手动编程。

·方便程序的测试

Spring对JUnit4支持,可以通过注解方便地测试Spring程序。

·方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如struts2﹑hibernate﹑MyBaits﹑Quartz等)的直接支持。

·降低了JavaEE API中的使用难度

Spring对JavaEE开发中非常难用的一些API(JDBC﹑JavaMail﹑远程调用等),都提供了封装,是这些难度大大降低。






























  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值