三大框架工作流程

Hibernate的工作流程:

1.         读取并解析配置文件

2.         读取并解析映射信息,创建SessionFactory

3.         打开Sesssion

4.         创建事务Transation

5.         持久化操作

6.         提交事务

7.         关闭Session

8.         关闭SesstionFactory

Hibernate中bean 的三种状态

Hibernate对象分为三种状态:瞬时态(new 出来的或者实例化时session无关的),持久态(session关联)与游离态(曾经与session关联)。其中持久态的对象是PO,瞬时态、托管态的对象可作为VO。(PO不应该直接用作v层)所以在使用中应该注意三态的转化。如:在进行数据操作的一系列过程中,save或者saveorupdate操作可以把瞬时态或者游离态的对象转换成持久态,而delete或者session的close、flush等操作将会把session相关联的持久态对象转换成游离态。

Hibernate对象的状态和生命周期

使用new操作符初始化的对象是一个瞬时态的(Transient)(没有任何跟数据库表相关联的行为,只要应用不再引用这些对象,它们的状态就会丢失,并由垃圾回收机制回收);瞬时态对象经过save(),saveOrUpdate会转换成持久态,由session统一管理,持久态对象的操作与数据库同步;持久态对象经过evict(),close(),clear()等会转换成游离态,这时虽然被持久化,但是不在session缓存中,通过lock(),update(),saveOrUpdate又会转换成持久态。 通过get(),load(),find(),iterate()获得的对象直接就是持久态的。

struts2的主要工作流程是这样的:

首先有一个http请求,这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin),然后进入struts2的控制核心FilterDispatcher;

FilterDispatcher询问ActionMapper,来判断此请求是否需要struts2处理,如果需要,那么由ActionProxy来接管,通过配置管理找到struts.xml,然后进入ActionInvocation,经过拦截器,进入action,从而根据返回的result选择我们要的页面,在拦截器的前半部分去值栈中取值通过标签展示在页面上,最后生成response返回

Spring Web MVC 处理Http请求的大致过程:

1.从第一点开始,请求的开始当然来源的用户访问的url,之后SpringMVC的工作正式开始,就好比一个人进城,必须要先经过城门才能进去,请求也是一样,他必须先经过一个叫做Dispatcher Servlet的前端控制器,

2.之后,你总要有工作地点吧(请求需要工作),可是不认路啊(请求需要在哪里被分析),所以你需要先去找到地图,然后在地图上找到地点,在SpringMVC中,从Dispatcher Servlet开始率先找到Handler Mapper,该组件映射找到工作点的老板(HandlerAdapter)。

3.到这里我们仅仅是知道怎么找到工作点而已,而且路径是从城门(Dispatcher Servlet前端控制器)开始的,我们按照地图(HandlerMapper组件里面的信息)的指引找到了指使我们工作的HandlerAdapter。

4.老板指使我们工作,此时我们化身为员工(Handler,也就是请求所对应的事件),我们工作的内容就控制层(也就是MVC中的C)下请求url所对应的方法,工作完成之后,我们需要提交工作数据呈现给老板看(返回ModelAndView对象给HandlerAdapter)

5.之后老板把你的工作数据贴到城门上(将ModelAndView对象返回给DispatcherServlet),再经历一番修饰后呈现给来往的商人(用户)

一个从大局上观看的基本流程大概就是如此,然而SpringMVC在具体的实现上远比这复杂许多,基本上在普通项目开发下我们在配置完SpringMVC要求配置环境后,所需要开发的地方就只有视图层和控制层,控制层里面的代码一般是有逻辑层和数据层的实现。

下面是我用思维导图制作的流程,比文字看起来直观一些。

Hibernate的工作流程:

1.         读取并解析配置文件

2.         读取并解析映射信息,创建SessionFactory

3.         打开Sesssion

4.         创建事务Transation

5.         持久化操作

6.         提交事务

7.         关闭Session

8.         关闭SesstionFactory

Hibernate中bean 的三种状态

Hibernate对象分为三种状态:瞬时态(new 出来的或者实例化时session无关的),持久态(session关联)与游离态(曾经与session关联)。其中持久态的对象是PO,瞬时态、托管态的对象可作为VO。(PO不应该直接用作v层)所以在使用中应该注意三态的转化。如:在进行数据操作的一系列过程中,save或者saveorupdate操作可以把瞬时态或者游离态的对象转换成持久态,而delete或者session的close、flush等操作将会把session相关联的持久态对象转换成游离态。

Hibernate对象的状态和生命周期

使用new操作符初始化的对象是一个瞬时态的(Transient)(没有任何跟数据库表相关联的行为,只要应用不再引用这些对象,它们的状态就会丢失,并由垃圾回收机制回收);瞬时态对象经过save(),saveOrUpdate会转换成持久态,由session统一管理,持久态对象的操作与数据库同步;持久态对象经过evict(),close(),clear()等会转换成游离态,这时虽然被持久化,但是不在session缓存中,通过lock(),update(),saveOrUpdate又会转换成持久态。 通过get(),load(),find(),iterate()获得的对象直接就是持久态的。

struts2的主要工作流程是这样的:

首先有一个http请求,这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin),然后进入struts2的控制核心FilterDispatcher;

FilterDispatcher询问ActionMapper,来判断此请求是否需要struts2处理,如果需要,那么由ActionProxy来接管,通过配置管理找到struts.xml,然后进入ActionInvocation,经过拦截器,进入action,从而根据返回的result选择我们要的页面,在拦截器的前半部分去值栈中取值通过标签展示在页面上,最后生成response返回

Spring Web MVC 处理Http请求的大致过程:

1.从第一点开始,请求的开始当然来源的用户访问的url,之后SpringMVC的工作正式开始,就好比一个人进城,必须要先经过城门才能进去,请求也是一样,他必须先经过一个叫做Dispatcher Servlet的前端控制器,

2.之后,你总要有工作地点吧(请求需要工作),可是不认路啊(请求需要在哪里被分析),所以你需要先去找到地图,然后在地图上找到地点,在SpringMVC中,从Dispatcher Servlet开始率先找到Handler Mapper,该组件映射找到工作点的老板(HandlerAdapter)。

3.到这里我们仅仅是知道怎么找到工作点而已,而且路径是从城门(Dispatcher Servlet前端控制器)开始的,我们按照地图(HandlerMapper组件里面的信息)的指引找到了指使我们工作的HandlerAdapter。

4.老板指使我们工作,此时我们化身为员工(Handler,也就是请求所对应的事件),我们工作的内容就控制层(也就是MVC中的C)下请求url所对应的方法,工作完成之后,我们需要提交工作数据呈现给老板看(返回ModelAndView对象给HandlerAdapter)

5.之后老板把你的工作数据贴到城门上(将ModelAndView对象返回给DispatcherServlet),再经历一番修饰后呈现给来往的商人(用户)

一个从大局上观看的基本流程大概就是如此,然而SpringMVC在具体的实现上远比这复杂许多,基本上在普通项目开发下我们在配置完SpringMVC要求配置环境后,所需要开发的地方就只有视图层和控制层,控制层里面的代码一般是有逻辑层和数据层的实现。

下面是我用思维导图制作的流程,比文字看起来直观一些。


相关文章

  • 三大框架的作用
  • Struts2的作用 作为web层框架应该大体实现以下功能: 1.获取表单内容,并组织生成参数对象 2.根据请求的参数转发请求给适当的控制器 3.在控制器中调用业务接口 4.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果 ...查看


  • 三大框架的运行原理
  • 一:Struts 对于采用Struts应用的web程序,在web应用启动时web.xml就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把他们存放到各种配置对象中 ...查看


  • COSO:从内控向风控的嬗变 --首席财务官
  • COSO:从内控向风控的嬗变 企业成功最终表现为卓越的财务业绩,企业的失败最终也体现在财务上的失败.因此,财务风险控制是企业风险控制最具综合性的内容. 企业的成功依赖于正确的战略和强有力的执行力度,相应地,企业的风险包括战略制订风险和执行中 ...查看


  • [理论研究]从PPE复合设置看马克思主义理论研究
  • 进一步借鉴和吸收PPE复合设置的内在优势,将马克思主义理论置于哲学.政治与经济三大学科的共同关照之下,为马克思主义研究提供新的成长点和创新点. 近日,北京大学.中国人民大学推进PPE复合专业的建设引起人们的普遍关注.所谓PPE复合专业,即哲 ...查看


  • 中国近代现代史基本框架
  • 中国近代现代史基本框架 一.中国近代史(1840年鸦片战争-1949年新中国成立前) 本时期以五四运动为分界点可以分为两个时期:旧民主主义革命时期(1840-1919)和新民主主义革命时期(1919-1949),旧民主主义革命时期又称近代前 ...查看


  • 这样读书就够了
  • 很快的速度,读完了<这样读书>.用书本中的话讲,这是一本非常典型的实用类书籍,有理论做基础,有方法.有工具.收获颇丰,这种书读起来也轻松. 梳理一下个人的收获. 第一搞清楚了成人学习的"三座大山"--没时间没 ...查看


  • 中国国民经济核算体系的扩展与延伸
  • 作者:李金华 经济研究 2008年06期 JEL Classification:C16,M41 一.引言 联合国统计委员会及相关机构曾向世界各国推荐过4个核算体系:<国民经济核算体系>(System of National Ac ...查看


  • CEF欧洲语言教学共同纲领
  • CEF 欧洲语言教学共同纲领, 欧洲语言学习教学评估共 同参考框架概述 关键词:CEF 分级,CEF 标准, 欧洲语言教学参考框架 来源:上海外教网 | 发布日期:2008-10-11 02:42 A C ommon E uropean F ...查看


  • 八年级上册历史知识框架
  • 八年级上册历史知识框架(川教版) 第一学习主题 列强的侵略和中国人民的抗争 爆发时间:1840年 爆发直接原因:中国人民禁烟运动 根本原因:英国侵略者为了打开 中国大门.维护可耻的鸦片贸易 战争结果 :清政府战败,签订丧权辱国的中国近代史上 ...查看


热门内容