全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在SSH框架中使用Spring的好处 在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致是:Jsp页面-Struts-Service(业务逻辑处理类)-Hibernate(左到右) struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖很强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处。 Spring的Ioc(控制反转和依赖注入) 控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控 依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注入到组件之中 。 从上面我们不难看出:从头到尾 .在SSH框架中使用Spring的好处 收藏在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致是:Jsp页面-Struts-Service(业务逻辑处理类)-Hibernate(左到右)struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖很强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处。Spring的Ioc(控制反转和依赖注入)控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注入到组件之中 。从上面我们不难看出:从头到尾Action仅仅是充当了Service的控制工具,这些具体的业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的方法接口就可以了。而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,甚至是一些业务流程都是由Action来控制的。层与层之间耦合性太紧密了,既降低了数据访问的效率又使业务逻辑看起来很复杂,代码量也很多。,Spring容器控制所有Action对象和业务逻辑类的生命周期,由于上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高,维护起来也方便。使用Spring的第二个好处(AOP应用):事务的处理:在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng AOP隔离降低了程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度实现松偶合 1 为你的项目增加一个管家,你不必写很多的代码去实现一些框架已经实现的功能。很多事情就可以交给管家去做。 很多的拦截,过滤,日志,国际化问题,发送消息,集成Hibernate,Ibatis,http远程调用。MVC框架等。 事务管理等,都不需要自己写很多的代码,完全可以通过适当的配置交给Spring去管理。 项目开发进度会加快很多。架构设置合理后,程序员只负责实现很少的部分代码就可以完成很复杂的功能。 2 不好之处,感觉自己没什么事情可以做了,因为一些复杂点的配置都被Spring容器实现了。 SSH中 struts hibernate spring 各起什么作用 struts 控制用的 hibernate 操作数据库的 spring 用解耦的 详细的说: STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 ActionServlet, 而 ActionServlet 的核心就是 Struts-confi g.xml. 主要控制逻辑关系的处理 . hibernate 是数据持久化层 , 是一种新的对象、关系的映射工具 , 提供了从 Java 类到数据表的映射,也提供了数据查询和恢复等机制 , 大大减少数据访问的复杂度。把对数据库的直接操作 , 转换为对持久对象的操作 . SPRING 是一个轻量级的控制反转 (IoC) 和面向切面 (AOP) 的容器框架 , 面向接口的编程 , 由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓 “ 控制反转 ” 的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中 起到的主要作用是解耦 Struts 、 spring 、 Hibernate 在各层的作用 1 ) struts 负责 web 层 . ActionFormBean 接收网页中表单提交的数据,然后通过 Action 进行处理,再 Forward 到对应的网页。 在 struts-config.xml 中定义 , ActionServlet 会加载。 2 ) spring 负责业务层管理,即 Service (或 Manager). 1 service 为 action 提供统计的调用接口,封装持久层的 DAO. 2 可以写一些自己的业务方法。 3 统一的 javabean 管理方法 4 声明式事务管理 5. 集成 Hiberante 3 ) Hiberante ,负责持久化层,完成数据库的 crud 操作 hibernate 为持久层,提供 OR/Mapping 。 它有一组 .hbm.xml 文件和 POJO, 是跟数据库中的表相对应的。然后定义 DAO ,这些是跟数据库打交道的类,它们会使用 PO 。 在 struts+spring+hibernate 的系统中, 对象的调用流程是: jsp- Action Service -DAO -Hibe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 带薪顶岗协议书范本
- 游玩安全协议书模板
- 游船借用协议书范本
- 小吃车转让合同协议
- 工厂保洁用工协议书
- 小学暑假家长协议书
- 工厂供应协议书范本
- 工业自动化设备租赁协议
- 游船乘坐协议书范本
- 治安调解协议书模板
- T/CAPE 10107-2024设备完整性管理规则
- 奇妙的通信之旅-儿童通信知识科普
- 普通高中英语课程标准(2020版vs2025日常修订版)核心变化对照表
- 2025年11月福建厦门市住房和建设局及所属部分事业单位招聘非在编辅助岗位人员10人考试笔试模拟试题及答案解析
- 公安保密培训课件
- 2025辽宁朝阳市公安机关招聘警务辅助人员301人笔试考试备考试题及答案解析
- 三级安全教育旋挖钻机试题及答案
- 智能电网技术论文
- 2025至2030全球与中国OTA测试行业市场调研与前景趋势报告
- 向以前说拜拜课件
- 2025年风光储电站新能源发电项目投资合同协议
评论
0/150
提交评论