9月9日培训日记内容
9月9日培训日记内容
今天我还在休息和整理了一些数据库方面的资料,没有去教室。下面的日记是方老师记录的:
今天由梁言兵老师继续讲解工作流相关的知识。上午讲工作流中表达式的解析,以及Decision节点如何根据表达式的计算结果进行相应的跳转,并讲解了工作流中的异常处理。下午复习以前讲解的解析XML文件生成workflow对象的过程,同时讲解如何把一个workflow对象转变成相应的XML文件。课程临近结束时讲解WEB2.0的新特性,什么是AJAX、实践操作并感受AJAX在几个著名项目中的应用、当前流行的AJAX框架等。
工作流中表达式的解析
工作流运行过程中表达式计算所需数据的几种获得方式,并结合在XML文件中配置表达式所需的数据,实例讲解了表达式的解析。
1、在workflow的XML文件中配置一个<variable>元素,用于定义表达式计算所需的值,并设置相应的名称、值和变量类型。该元素对应于workflow中的Variable对象。
2、创建一个ExpressionEvaluator类,该类通过构造函数接收需要计算的表达式,以及表达式计算所用的数据,并定义了一个用于解析并计算表达式值的evaluate方法。
3、Decision节点在调用它的doComplet方法时,调用ExpressionEvaluator类的evaluate方法,然后根据其返回值判断工作流引擎跳转到哪个结点执行。
所涉及到的小知识点:
1、传递程序运行所需的扭转参数(即表达式计算时所需的数据)时,通常有如下几种方式:
l 在调用工作流节点的active方法时传入相对应的参数。
l 在调用工作流节点的active方法时传入一个workflow对象。
l 在调用工作流节点的active方法时传入一个workflowContext对象。
上两种方式不利于程序的扩展和维护,从面向对象的方面考虑,通常的做法是创建一个workflowContext对象,该对象用于封装workflow运行时的环境信息。类似于servlet中的servletContext对象。
2、程序代码中没有完成的部分用todo标记进行说明,便于今后查找并完善。
3、java.util.ResourceBundle类的作用以及其应用场景。用于读取资源文件,广泛用于国际化、配置文件处理等等。
4、复习final关键字的几种应用场景:
l 用在类前面:此类不能被继承。
l 用在方法前面:此方法不能被覆盖。
l 用在变量前面:变量不能被修改。
工作流中的异常处理
1、java.lang.exception类的四种构造函数。
2、工作流执行过程中的异常类型。
l 实际的业务异常
l 第三方异常
3、构建工作流所用到的异常类workflowException。
XML----------àworkflow
转换过种中的两个主要步骤:
l 根据XML文件中的标签生成相应的数据对象。
l 建立对象之间的关联。
workflow ----------à XML
完善workflow项目中的XmlWriter类,实现workflow对象到XML文件的转换。