现在的位置: 首页 > 综合 > 正文

9月2日培训日记

2013年08月21日 ⁄ 综合 ⁄ 共 873字 ⁄ 字号 评论关闭

今天下午去听了一会梁老师讲课,尽管对我来说,有效听课内容只有几分钟,但是,收获还是蛮大的,特别是我自己后来给学员解释digester的原理,让我对digester有了更深的理解,并形成了自己的一套观念。
1.digester组件
  梁老师的工作流项目在一个xml文件中定义各个工作流,最终要把xml文件中的工作流影射成Java中的工作流对象关系图,这个太有好处了,不用修改源程序,就可以修改一个工作流的定义,就可以自动得到工作流的新的对象关系图。将xml文件映射成对象关系图,采用的就是digester组件。
   要让学员们理解digester的作用,我用的比喻还是国家(包含国家主席,省份),省份(包含省长,城市),城市来举例,一个国家,一个省份,一个城市都要对应到程序中的一个对象上,digester的rules.xml要说明哪个元素对应哪个对象,这就是pattern元素的作用,pattern元素可以嵌套使用,<set-properties>元素用于将xml元素的属性映成相应对象的属性。要让学员理解digester的栈工作原理,我先讲了sax解析xml文件时的堆栈处理方式,sax解析器遇到开始标记和结束标记时都报告事件,可是,我们怎么知道当前的结束标记对应的是以前的哪个开始标记呢?采用堆栈处理,我们可以随时知道当前的元素上下文,解析器可以知道当前正在处理哪个元素。digester也使用这种堆栈形式,知道当前是在调用哪个对象的方法。digester的应用有特定的场景,元素之间的嵌套关系在对象图中正好存在这种关系,元素的属性正好是对象的属性,当前生成的对象作为上层对象的子对象,上层对象应提供一个方法来将当前对象加入进去,上层对象就是靠栈来识别的。

2.小知识:
   a)在程序中调用某个方法,如果eclipse发现没有定义这个方法,eclipse可以直接生成这个方法。
   b)用eclipse去check out cvs服务器上的项目,要首先创建或选择工作间,check out后要切换到java透视图下,才可以进入check out后的工程下工作。

抱歉!评论已关闭.