浅谈SSH框架

      在学习或者接触一个新的概念的时候,我们应该在脑海中发挥我们的搜索引擎,牵一发动全身的去想,这个知识跟我之前接触过的有哪些相同或者不同的地方,从这个角度去看那些新的知识和概念,经过旧知识和新知识的对比我们便会发现,新知识知识在旧知识的基础上进行了更新和变化,今天这篇博客,小编主要简单的介绍一下SSH框架的知识,希望可以帮助到有需要的小伙伴,还请小伙伴多多指教`(*∩_∩*)′!
       what
       那么什么是SSH呢?SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
       集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

        框架就是framework,还记得当时装sql的时候,总要你装的.net  framework4.0吗?框架是一个基本概念上的结构,用于去解决或者处理复杂的问题。框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法,另一种定力认为,框架是可被应用开发者定制的应用骨架。

              

        why

        那么为什么要用SSH框架呢?小伙伴们都知道,软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,我们只需要集中精力完成系统个业务逻辑设计。而且框架一般是成熟,稳健的,她可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且她是不断升级的,我们可以直接享受别人升级代码带来的好处,也就是米老师常说的,站在巨人的肩膀上。为了业务层与逻辑层分离,降低耦合性,提高可维护性以及移植性,具有很多优点,对于大工程ssh的优越性将能体现得淋漓尽致,利用ssh框架,可以分离出一个系统编写代码的不同工作,可以更好的管理代码,扩展系统功能,struts是mvc是模型(model)、视图(view)、控制器(controller)中的控制器,例如action部分,spring是对垒的分类管理,hibernate是对数据库的处理。

         

        how
        那么ssh究竟能做什么呢?
        Struts是一个mvc的架构,在控制器、视图和模型方面都有特定的组件,在ssh框架中,更多的是利用了controller这个组件,是一种非常优秀的j2eemvc实现方式,主要用于框架的web开发。
        Spring实现了控制反转和面向方面编程,Spring框架能实现应用的分层架构,在应用中要使用的对象可以被一个简单的xml文件连在一起,这个xml文件含有类似事务管理器、对象工厂、包含业务逻辑的服务对象,和数据存储对象这些对象的作用。
         Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合。Spring做管理,管理struts和hibernate。 其中,用Spring容器代替DAO工厂,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO实例。
         Hibernate是一种ORM映射工具,它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,使用Hibernate,可以大大减少操作数据库的工作量。

         采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问。 Hibernate作为持久层技术(用Hibernate作为ORM框架)的最大的好处在于可以完全以面向对象的方式进行系统分析、系统设计。

          

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

时间: 2024-11-13 06:41:23

浅谈SSH框架的相关文章

段正淳的css笔记(6)-浅谈css框架开发

个人总结了在开发css框架中的一点经验,献丑了.希望大家的讨论能使我们共同进步.:) 1.css框架 中国的互联网行业已经发展了10年,浏览器也从最早流行的NS到现在的FF3.IE7等等--前端开发工程师的职位也诞生了.近几年在web开发中,有个非常火的词--"框架".YUI.JQuery.Prototype这些javascript框架在开发网站时,确实成为前端开发工程师的手中利器.为什么呢?因为框架是包含工具.函数库.约定,以及尝试从常用任务中抽象出可以复用的通用模块,让设计师与程序

浅谈MVC框架中View层的优雅设计及实例

设计 在基于B/S的应用程序开发中,从基本的技术分工上来说就是两大块,一是软件显示界面,另一个是程序逻辑.在N年前的脚本语言时代,无论是asp.php还是jsp,我们基本是都是把这两者柔和在一起的.尽管我们想方设法做好很多函数或者包含文件来努力达到软件的复用,但仍然无法满足多变的用户需求,这主要是因为以前的纯脚本编码方式无法很好支持及应用面向对象(OO)领域中的强大功能. 在常见的B/S软件项目中,界面的设计包括html界面.Wap界面及其它由文本字符协议为基本表示的界面等.以我们接触最多的ht

浅谈Struts框架及其组成部分

一,什么是框架? 所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自 己的特定逻辑. 二,MVC设计模式 将应用程序分为3个部分:模型 Model,视图View,控制器Controller:模型组件:负责业务逻辑:模 型包含应用程序的核心功能.模型封装了应用程序的状态.有时它包含的唯一功能就是状态.它对视图或 控制器一无所知.视图组件:负责表示业务范围的视图:视图提供模型的表示.它是应用程序的外观.视 图可以访问模型的读方法,但不能访问写方法.此外,它对控制

浅谈ssh的相互免密码登录

2台Linux机器之间的相互ssh免密码登录,假设A, B 2台电脑,都有用户user1. 在Host A上, 以用户user1执行命令 ssh-keygen 生成私钥id_rsa和公钥id_rsa.pub, 再执行命令 ssh-copy-id user1@HostB 将公钥拷贝到Host B上,并需要输入Host B上的user1密码,则Host A到Host B ssh 免密码登录 将Host A上的私钥scp到Host B上 scp ~/.ssh/id_rsa user1@HostB:~/

浅谈JavaScript 框架分类

  第1种 出现的是以命名空间为导向的类库或框架,如创建一个数组用new Array(),生成一个对象用new Object(),完全的Java风格,因此我们就可以以某一对象为根,不断为它添加对象属性或二级对象属性来组织代码,金字塔般地垒叠起来.代表作如早期的YUI与EXT. 第2种 出现的是以类工厂为导向的框架,如著名的Prototype,还有mootools.Base2.Ten.它们基本上除了最基本的命名空间,其他模块都是一个由类工厂衍生出来的类对象.尤其是mootools 1.3,把所有类

浅谈tiles框架

惯例: 我是温浩然: 这个真的属于原创文章--- 最近一直用tiles架构做项目,关于tiles架构呢,网上介绍的很多,我就不介绍了,这里说说我的用法. 架构是spring MVC + tiles  我这里说的,主要是其中一种用法. 一般配置tiles ,都是继承自一个框架中,这个框架上封装好了,头部,和左侧菜单栏,然后,右侧的内容部分需要自己定义. 刚开始的时候,我不太会用,所有的东西都用这个架构,也就是,每一个右侧的内容页面,我都用tiles架构给他嵌套到整个的tiles框架中. 后来,由于

浅谈JavaScript 框架分类_基础知识

如果是从内部架构与理念划分,目前JavaScript框架可以划分为5类. 第1种 出现的是以命名空间为导向的类库或框架,如创建一个数组用new Array(),生成一个对象用new Object(),完全的Java风格,因此我们就可以以某一对象为根,不断为它添加对象属性或二级对象属性来组织代码,金字塔般地垒叠起来.代表作如早期的YUI与EXT. 第2种 出现的是以类工厂为导向的框架,如著名的Prototype,还有mootools.Base2.Ten.它们基本上除了最基本的命名空间,其他模块都是

浅谈Hibernate框架获得成功的几个理由

飞快的版本发布 保持活跃的开发速度,经常进行版本发布,甚至几天 之内就从前一个版本开发到下一个版本.这样是保证软件远离Bug的最好的办法,也可以让用户感到很放心,确信Hibernate的开发十分活跃,另外这样做也有一大好处,就是可以发现哪些功能是用户真正需要的. 回归测试 我想现在整个Java社区一定都很重视自动回归测试.如果软件的功能和设计有比较大的修改,那么一个综合性的test suite对于软件可维护性和稳定性来说实在是太重要了.我们应该有这样的意识:如果对软件的一个新功能没有进行回归测试

【浅谈JavaEE框架】Spring中@Autowired标签与@Resource标签的区别

@Autowired  Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作.  通过 @Autowired的使用来消除 set ,get方法.   要实现我们要精简程序的目的. @Autowired默认按照类型进行注入 @Autowired @Qualifier("personDaoxxx")这样就是按照名称进行装配 @Autowired(required=true)必须注入值,不能为null,为false无论注入什