【夯实基础】Spring在ssh中的作用

【夯实基础】Spring在ssh中的作用

大家好,又见面了,我是全栈君。

尊重版权:http://blog.csdn.net/qjlsharp/archive/2009/03/21/4013255.aspx

写的真不错。

在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(面向切面编程)机制非常好的应用。一方面使开发业务逻辑更清晰、专业分工更加easy进行。还有一方面就是应用Spirng  AOP隔离降低了程序的耦合性使我们能够在不同的应用中将各个切面结合起来使用大大提高了代码重用度。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116362.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wireshark抓取arp包分析_dns协议抓包分析

    wireshark抓取arp包分析_dns协议抓包分析使用Wireshark工具抓取ARP协议的数据包,分析ARP协议的地址解析过程、自主学习逻辑以及初次访问和多次访问的区别。

    2022年9月7日
    0
  • 虚拟机上网问题(设置NAT依然无法上网)

    虚拟机上网问题(设置NAT依然无法上网)首先先设置NAT模式,保证虚拟机和主机共享IP可以解决校园网桥接模式主机用户登录了,虚拟机也要用户登录才能上网然后windows,打开服务,确保下面几个服务是打开的…

    2022年5月16日
    33
  • IT学生学习指南

    IT学生学习指南本文主要为了计算机相关专业的学生而写。内容是从本博主的工作经验和教学经验当中总结出来的一些干货,涵盖了从大一到大四期间学生所遇到的常见问题,包括如何找到满意的工作、如何选择适合自己的工作岗位、如何制定自己的学习计划、如何分辨自身适合考研还是就业、女生的IT之路怎么走、如何锻炼自己的技术等等大学生最关心的问题。如果大家觉得文本值得一看,那就请推荐给身边那些还在迷茫中的孩子们吧!

    2022年6月4日
    22
  • netstat 工具

    netstat 工具netstat工具netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况netstat-a或–all#显示所有连线中的Socketnetstat-at#列出所有tcp端口netstat-au#列出所有udp端口#列出所有处于监听状态的Socketsnetsta…

    2022年7月22日
    9
  • 经典StNet行为识别网络「建议收藏」

    经典StNet行为识别网络「建议收藏」论文题目:StNet:LocalandGlobalSpatial-TemporalModelingforActionRecognition论文链接:https://arxiv.org/abs/1811.01549代码:https://github.com/PaddlePaddle/models/blob/develop/fluid/PaddleCV/video/model…

    2022年6月21日
    36
  • java tcp粘包_socket拆包与组班

    java tcp粘包_socket拆包与组班importjava.nio.ByteBuffer;importio.netty.bootstrap.ServerBootstrap;importio.netty.buffer.ByteBuf;importio.netty.buffer.Unpooled;importio.netty.channel.ChannelFuture;importio.netty.channel.Channe…

    2022年8月11日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号