ssh框架原理及流程图,ssh框架的工作流程

  ssh框架原理及流程图,ssh框架的工作流程

  

  如何解决写爬虫IP受阻的问题?立即使用。

  SSH(Struts2+Spring+Hibernate)框架的项目,该架构主要分为三个层次:

  (1)Struts2:负责web层

  (2)Spring:业务层的管理

  (3)Hibernate:负责数据持久化。

  Struts2工作原理:

  1.初始化对servlet容器的请求。

  2.请求由web . XML filter dispatcher(struts2控制器的struts 2核心)中配置的过滤器过滤,询问ActionMapper是否需要调用一个操作来处理此请求。如果ActionMapper决定需要调用某个操作,FilterDispatcher会将请求的处理移交给ActionProxy。

  3.ActionProxy通过配置文件Struts.xml配置文件找到要调用的Action类。

  4.ActionProxy创建ActionInvoke的实例,ActionInvoke通过代理模式调用Action。但是在调用之前,ActionInvoke会根据配置加载所有与动作相关的拦截器。

  5.五点以后。Action被执行,ActionInvocation负责根据struts.xml中的配置找到相应的返回结果result

  也就是说,开发人员发送一个http请求,该请求由web.xml的过滤器过滤,以查看是否要调用某个操作。如果是,开发者在Struts.xml中找到实现请求的方法,然后返回运行结果。

  相关:《java开发教程》

  Hibernate工作原理:

  1.读取并解析配置文件。

  2.读取并分析映射信息以创建SessionFactory。

  3.打开会话

  4.创建交易记录转换

  5.持续操作

  6.提交事务

  7.关闭会话

  8.关闭会话工厂

  即初始化spring管理的Hibernate时,加载xxx.hbm.xml,然后读取解析映射信息,创建SessionFactory。然后打开会话,操作,通过会话提交东西。最后,关闭会话并关闭会话工厂。

  bean在休眠中的三种状态

  Hibernate对象分为三种状态:瞬态(新的或者实例化时与会话无关)、持久状态(与会话相关)和自由状态(一旦与会话相关)。持久状态的对象是PO,瞬态和托管状态的对象可以作为VO。(PO不宜直接用作V层)所以在使用中要注意三态的转换。

  比如:

  在一系列数据操作中,save或saveorupdate操作可以将瞬态或自由对象转换为持久对象,而delete或session的close和flush操作会将与session关联的持久对象转换为自由对象。

  Hibernate对象的状态和生命周期

  用new运算符初始化的对象是瞬态的(没有与数据库表相关联的行为,只要应用程序不再引用这些对象,它们的状态就会丢失并被垃圾收集机制收集);

  save()之后,瞬态对象会被转换成持久保存,持久保存由session管理,持久对象的操作会与数据库同步。

  持久对象在evict()、close()、clear()等之后会转换成自由状态。此时虽然是持久化的,但是不在会话缓存中,saveorupdate会通过lock(),update()转换成持久化状态。通过get(),load(),find(),iterate()获得的对象是直接持久的。

  Spring的工作原理:

  在SSH框架中,spring充当管理容器。我们都知道用Hibernate做持久层,因为它很好的封装了JDBC,程序员不用写很多SQL语句就可以和数据库交互。Struts作为应用层,负责调用业务逻辑的服务层。

  所以SSH框架的流程大致如下:Jsp页面- Struts - Service(业务逻辑处理类)- Hibernate(从左到右)

  Struts负责控制服务(业务逻辑处理类),从而控制服务的生命周期。这样,各层之间有很强的依赖性,属于耦合。

  这时候spring框架的使用起到了控制动作对象(在Strus中)和服务类的作用,它们之间的关系是松散的。这里使用了Spring的Ioc机制(控制反转和依赖注入)。

  反转:容器控制程序之间的(依赖)关系,而不是传统实现中由程序代码直接控制。

  依赖注入:组件之间的依赖关系是由容器在运行时决定的,容器动态地向组件注入一些依赖关系。

  使用Spring的第二个好处(AOP应用程序):

  交易处理:

  过去,事务在JDBCTemplate中提交成功,异常处理由Try/Catch完成。Spring container集成了TransactionTemplate,封装了所有的事务处理功能,包括异常时的事务回滚、操作成功时的数据提交等复杂的业务功能。这些都由Spring container管理,大大减少了程序员的代码量,对事务也有很好的管理控制。hibernate中还有事务管理。在Hibernate中,事务管理是通过SessionFactory创建和维护会话来完成的。而且Spring还集成了SessionFactory的配置,所以不需要通过hibernate.cfg.xml来设置sessionfactory

  这样,我们就可以很好地利用Sping强大的事务管理功能。

  它避免了让会话实例启动事务/提交/回滚事务,以及每次操作数据时繁琐的Try/Catch操作。

  这些都是AOP(面向方面编程)机制在Spring中的良好应用。一方面让业务逻辑更清晰,专业分工更容易。

  另一方面,Spirng AOP隔离的应用降低了程序的耦合性,使我们可以在不同的应用中结合各个方面,大大提高了代码的重用性。这就是ssh框架原理和流程的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: